더북(TheBook)

이제 반복할 준비를 마쳤다.


int count = 0;

for (String w : words) {

if (w.length() > 12) count++;

}


 

여기서 무엇이 잘못되었을까? 코드를 병렬화하기 어렵다는 점 외에는 실제로 잘못된 부분은 없다. 바로 이 부분이 자바 8의 벌크 연산bulk operation이 등장할 곳이다. 자바 8에서는 같은 연산을 다음과 같이 표현할 수 있다.


long count = words.stream().filter(w -> w.length() > 12).count();


 

stream 메서드는 words 리스트의 스트림stream을 돌려준다. filter 메서드는 12글자보다 긴 단어만 담은 다른 스트림을 리턴한다. count 메서드는 이 스트림을 결과로 리듀스reduce한다.

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