boxed() 메소드는 IntStream 같이 원시 타입에 대한 스트림 지원을 클래스 타입(예:
IntStream
->Stream<Integer>
)으로 전환해준다.
전용으로 실행 가능한 (예를 들어 int 자체로는 Collection에 못 담기 때문에 Integer 클래스로 변환하여List<Integer>
로 담기 위해 등) 기능을 수행하기 위해 존재한다.
public static void main(String[] args) {
//int[] -> IntStream -> Stream<Integer> -> Integer[]
int[] num = {3, 4, 5};
//1. int[] -> IntStream
IntStream stream = Arrays.stream(num);
//2. IntStream -> Stream<Integer>
Stream<Integer> boxed = stream.boxed();
//3. Stream<Integer> -> Integer[]
Integer[] result = boxed.toArray(Integer[]::new);
System.out.println(Arrays.toString(result));
// one line
Integer[] oneLineResult = Arrays.stream(num)
.boxed()
.toArray(Integer[]::new);
}
[참고]
https://mkyong.com/java8/java-8-how-to-convert-intstream-to-integer/