더북(TheBook)

<Note>

지금까지 스트림 값들을 리듀스하거나 모으는 방법을 살펴봤다. 하지만 단순히 값들을 출력하거나 데이터베이스에 저장하고 싶을 수도 있다. 이때는 forEach 메서드를 사용할 수 있다.

 

stream.forEach(System.out::println);

 

forEach 메서드에 전달하는 함수가 각 요소에 적용된다. 함수를 병렬 스트림에서 동시에 실행할 수 있게 하는 일은 여러분의 몫이다. 이에 관해서는 “2.13 병렬 스트림” 절에서 설명한다.

병렬 스트림에서는 요소들을 임의 순서로 순회할 수 있다. 스트림 순서로 실행하고 싶으면 대신 forEachOrdered 메서드를 호출한다. 물론 이 경우 병렬성이 주는 대부분 또는 모든 이점을 포기해야 할 수도 있다.

forEachforEachOrdered 메서드는 최종 연산이다. 이들 메서드를 호출한 후에는 스트림을 사용할 수 없다. 스트림을 계속 사용하고 싶으면 대신 peek를 사용해야 한다(46페이지에 있는 “2.4 서브스트림 추출과 스트림 결합” 절 참고).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.