본문 바로가기
[개발] 언어/Java

Java Stream API의 patitioningBy에 대해서 알아보자.

by Devsong26 2024. 11. 14.

'Stream  연산을 처리하는 중에 하나의 결과를 통해 서로 다른 컬렉션 객체를 반환받을 수 있을까?' 라는 의문이 생겼습니다.

예시로 숫자 스트림 객체가 주어졌을 때, 짝수와 홀수 컬렉션을 한 번의 스트림 연산으로 가져오고 싶었던 것 입니다.

 

Stream patitioningBy 연산을 통해 가능하다고 하여 자세히 알아보게 되었습니다.

 

 

 


 

 

Stream partitioningBy

 

partitioningBy란?

Collectors.partitioningBy는 Java Stream API에서 주어진 조건(Predicate)에 따라 스트림 요소를 두 개의 그룹으로 나누기 위해 사용되는 메서드입니다. 이 메서드는 Collectors 클래스에서 제공되며, 각 요소가 조건을 만족하는지 여부에 따라 true 또는 false 키로 그룹을 나눕니다.

 

 

 

사용 방법

Collectors.partitioningBy(Predicate<? extends T> predicate);

이 메서드는 Predicate(참/거짓을 반환하는 조건식)을 인자로 받아, 해당 조건에 따라 스트림의 요소를 두 그룹으로 나눕니다.

 

 

예시

final Map<Boolean, List<Integer>> evenOddPartition = 
    Stream.of(1,2,3,4,5,6,7,8,9,10)
          .collect(Collectors.partitioningBy(n -> n % 2 == 0));
          
System.out.println("Even numbers: " + evenOddPartition.get(true));
System.out.println("Odd numbers: " + evenOddPartition.get(false));

'[개발] 언어 > Java' 카테고리의 다른 글

빈 스트림에 allMatch를 할 경우 true 반환  (0) 2024.10.27
Java 8 Parallel Stream  (0) 2024.09.19
Java Method  (1) 2023.11.11
Java Switch Case  (0) 2023.11.09
SOLID  (1) 2023.10.30