Java/자바 정리
170. asDoubleStream()과 boxed() – 기본형 스트림 변환하기
코딩하는냥이
2025. 5. 26. 10:55
반응형
자바의 IntStream은 정수 전용 스트림으로,
필요에 따라 double 스트림으로 변환하거나,
객체 스트림(Stream<Integer>)으로 변환해야 할 때가 있습니다.
이번 예제에서는 asDoubleStream()과 boxed() 메서드를 통해
기본형 스트림을 다양한 방식으로 변환하는 방법을 실습해보겠습니다.
📌 예제 코드
import java.util.Arrays;
import java.util.stream.IntStream;
public class MapExample {
public static void main(String[] args) {
int intArray[] = { 1, 2, 3, 4, 5 };
// int → double 스트림으로 변환
IntStream intStream = Arrays.stream(intArray);
intStream.asDoubleStream().forEach(System.out::println);
System.out.println();
// int → Integer 객체 스트림으로 변환
intStream = Arrays.stream(intArray);
intStream.boxed().forEach(System.out::println);
}
}
💻 실행 결과
1.0
2.0
3.0
4.0
5.0
1
2
3
4
5
💬 코드 설명
- asDoubleStream()
→ IntStream을 DoubleStream으로 변환하여 출력 형식이 실수(double) 로 바뀝니다. - boxed()
→ IntStream의 각 값을 Integer 객체로 포장하여 Stream<Integer>로 변환합니다. - 두 스트림 모두 forEach()로 요소를 출력하고 있으며, 데이터는 동일하지만 타입이 다릅니다.
💡 포인트 정리
- asDoubleStream()
→ IntStream → DoubleStream으로 변환할 때 사용하며, 실수 계산에 유용합니다. - boxed()
→ 기본형 스트림을 객체 스트림으로 바꿔야 할 때 필수입니다.
예: Collectors.toList()나 filter(...) 등의 객체 연산에 사용 - 기본형 스트림 (IntStream, DoubleStream, LongStream)은
성능 최적화를 위해 객체 스트림보다 가볍게 동작합니다.
📌정리하자면, 이번 예제에서는 IntStream을 다양한 형태로 변환하는 두 가지 방법인
asDoubleStream()과 boxed()를 실습해보았습니다.
이러한 변환은 상황에 따라 정밀한 실수 연산이나 객체 기반의 스트림 연산이 필요할 때 유용하게 활용됩니다.