Stream peek (디버깅)
[문제]
또메인 stream에서 짝수만 필터링한 후, 디버깅 정보를 출력하면서 2배로 변환하세요.
[데이터]
[1, 2, 3, 4, 5, 6, 7, 8]
[요구사항]
- filter()로 짝수 선택
- peek()으로 각 단계의 값 출력 (디버깅)
- map()으로 2배 변환
- 최종 결과 출력
[소스]
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamPeek {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
System.out.println("원본: " + numbers);
System.out.println("\nStream 중간 과정:");
// filter -> peek -> map -> peek 순서로 처리하여 각 단계 확인
List<Integer> result = numbers.stream()
.filter(n -> n % 2 == 0) // 짝수만
.peek(n -> System.out.println(" filter 통과: " + n)) // 필터링 후 값
.map(n -> n * 2) // 2배 변환
.peek(n -> System.out.println(" map 완료: " + n)) // 변환 후 값
.collect(Collectors.toList());
System.out.println("\n최종 결과: " + result);
}
}