종종 코딩테스트 문제들을 풀다 보면 원시 타입인 int 배열을 HashSet이나 ArrayList 등으로 변환해야 할 일이 생기는데 매번 까먹어서...
int[] sampleArr = new int[]{1, 2, 3, 4, 5};
Set<Integer> converted =
Arrays.stream(sampleArr).boxed().collect(Collectors.toSet());
boxed()
메소드는 반환값이 Stream<Integer>
로 인수로 넘어오는 배열의 요소, 원시타입 int를 Object인 Integer로 변환하는 역할을 한다.
IntStream
인터페이스에 선언된 메소드로 구현은 아래와 같음.
@Override
public final Stream<Integer> boxed() {
return mapToObj(Integer::valueOf, 0);
}