JAVA에서 배열을 리스트로 변환하는 도중에 생긴 일

알고리즘 문제를 풀다보면 배열 그대로를 사용하는 것보다 리스트로 변환해서 사용하는게 편할 때가 있다.

아주 쉬운 문제여서 자연스럽게 컨버트 하려는 순간 오류가 났다.

Array to List

    public List solution(int[] phone_book) {
        List list = Arrays.asList(phone_book);
        System.out.println(list.get(1));
        return list;
    }

이런 식의 변환은 non primitive 타입에 대해서만 가능한 변환이였다.

그래서 int 형을 어떻게 변환 하는지 찾아보니...

    public List solution(int[] phone_book) {
        List list = Arrays.stream(phone_book).boxed().collect(Collectors.toList());
        System.out.println(list.get(0));
        return list;
    }

이러한 형태로 바뀌었다.

boxed라는 함수는 primitive 요소를 non primitive 요소로 박싱을 해준다.
자바 스트림을 사용하기 싫다면 형변환 자체를 Integer로 바꿔줘도 된다.
(하지만... 변환 하나를 위해서 전체 코드의 형을 변경하는건 비효율적일듯...)

정말 간단하다고 생각했던 변환도 생각지도 못한 오류가 발생하는 걸 보니...
아직도 공부가 많이 필요한것 같다. (꾸엥)

좋은 웹페이지 즐겨찾기