Primitive 배열에는 "Arrays.stream"이 사용되어야 합니다

 

객체의 배열을 처리하기 위해 사용되는 Arrays.asList(T ... a).stream()Arrays.stream(array)은 기본적으로 같은 성능을 보입니다. 하지만, Primitives(기본 자료형) 배열에 사용되는 경우 Arrays.asList을 사용하게 되면, boxed types(객체형)의 리스트 생성자를 강제하게 되고 이를 stream에 사용합니다. 반면 Arrays.stream은 기본 자료형에 대응되는 적절한 stream 타입(IntStream, LongStream, DoubleStream)을 골라 사용하게 됩니다. 그리고 이 덕분에 더 나은 성능을 얻을 수 있게 됩니다.

규칙을 어긴 코드

Arrays.asList("a1", "a2", "b1", "c2", "c1").stream()
    .filter(...)
    .forEach(...);

Arrays.asList(1, 2, 3, 4).stream() // 규칙을 어긴 코드
    .filter(...)
    .forEach(...);

규칙을 준수한 해결책

Arrays.asList("a1", "a2", "b1", "c2", "c1").stream()
    .filter(...)
    .forEach(...);

int[] intArray = new int[]{1, 2, 3, 4};
Arrays.stream(intArray)
    .filter(...)
    .forEach(...);

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project