더북(TheBook)

이 장에서 스트림에 관한 모든 것을 배울 수 있다. 많은 사람이 루프 형태보다 스트림 표현식을 읽기 쉽다고 여길 것이다. 게다가 스트림은 쉽게 병렬화할 수 있다. 다음은 긴 단어의 수를 병렬로 세는 방법이다.


long count = words.parallelStream()

.filter(w -> w.length() > 12).count();


 

단순히 streamparallelStream으로 변경하는 것만으로 스트림 라이브러리가 필터링과 카운팅을 병렬로 수행하게 할 수 있다.

스트림은 ‘어떻게가 아니라 무엇을’ 원칙을 따른다. 따라서 이 스트림 예제에서 무엇을 해야 하는지 기술한다(긴 단어를 골라내고 개수를 센다). 작업이 어떤 순서로 또는 어떤 스레드에서 일어나야 하는지는 명시하지 않는다. 이와 반대로, 이 절의 시작 부분에 나온 루프에서는 계산을 정확히 어떻게 해야 하는지 명시하기 때문에 최적화의 모든 기회를 포기하게 된다.

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