[JAVA] Stream.of 와 Arrays.stream 실수

유알·2023년 2월 2일
0

[JAVA]

목록 보기
7/13

코딩테스트를 풀다가 어이없는 실수로 한참을 헤맸다.

다음 코드에서 이상한 점을 발견해 보라.

int[] alpha = new int[26];

Stream.of(alpha).sorted(Comparator.reverseOrder()) //후략...

자꾸 컴파일 에러가 나는 것이다.

왜지?... 한참 삽질하고 ChatGPT형님한테도 물어보고 한 결과,
(ChatGPT가 틀린 답을 주었다. 처음봤다.)
참 나의 어이없는 실수였다.

    public static<T> Stream<T> of(T... values) {
        return Arrays.stream(values);
    }

리턴 값을 보면 알 수 있다.

즉 나의 위 코드는
Stream<int[]>를 반환하는 코드였던 것이다. 당연히 안되는게 당연하다.
내가 원하는건 Stream<int>이다.

올바른 코드는 아래와 같다,

        int[] ints = Arrays.stream(alpha)
                .boxed()
                .sorted(Comparator.reverseOrder())
                .mapToInt(Integer::intValue)
                .toArray();
profile
더 좋은 구조를 고민하는 개발자 입니다

0개의 댓글