**peek()**와 map() 메소드는 자바 8에서 추가된 스트림 API에서 사용할 수 있는 중간 연산 중의 두 가지입니다.

peek() 메소드는 스트림의 각 요소를 소비하며, 요소의 값을 읽을 수는 있지만 변경할 수는 없습니다. 이 메소드는 주로 디버깅 용도로 사용되며, 스트림의 각 요소를 출력하거나 로깅하는 등의 작업을 수행할 수 있습니다.

예를 들어, 다음은 peek() 메소드를 사용하여 스트림의 각 요소를 출력하는 예시입니다.

javaCopy code
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

numbers.stream()
       .peek(System.out::println)
       .collect(Collectors.toList());

map() 메소드는 스트림의 각 요소를 소비하며, 요소의 값을 읽어서 다른 값으로 변환할 수 있습니다. 이 메소드는 스트림의 각 요소를 변환하는 데 사용되며, 변환된 값들로 구성된 새로운 스트림을 반환합니다.

예를 들어, 다음은 map() 메소드를 사용하여 스트림의 각 요소를 제곱하는 예시입니다.

javaCopy code
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> squares = numbers.stream()
                                .map(n -> n * n)
                                .collect(Collectors.toList());

따라서, peek() 메소드는 스트림의 각 요소를 읽고 로깅 또는 디버깅용으로 활용할 수 있으며, map() 메소드는 각 요소를 변환하여 새로운 스트림을 반환합니다.