더북(TheBook)

분류 함수가 프레디케이트 함수(즉, boolean을 리턴하는 함수)인 경우, 스트림 요소가 리스트 두 개(각각 함수에서 truefalse를 리턴하는 경우에 해당)로 분할된다. 이 경우에는 groupingBy 대신 partitioningBy를 사용하면 훨씬 효율적이다. 예를 들어, 다음 예제는 모든 로케일을 영어를 사용하는 경우와 그 외의 경우로 분리한다.


Map<Boolean, List<Locale>> englishAndOtherLocales = locales.collect(

Collectors.partitioningBy(l -> l.getLanguage().equals("en")));

List<Locale>> englishLocales = englishAndOtherLocales.get(true);


 

<Note>

groupingByConcurrent 메서드를 호출하면 병행 맵을 얻으며, 이를 병렬 스트림에서 사용하면 동시에 내용이 채워진다. 전체적으로 볼 때 이 메서드는 toConcurrentMap 메서드에 해당한다.

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