1. 그룹화와 분할 - groupingBy(), partitioningBy()
- 그룹화는 스트림의 요소를 특정 기준으로 그룹화하는 것을 의미한다.
- 분할은 스트림의 요소를 두 가지, 즉, 지정된 조건에 일치하는 그룹과 일치하지 않는 그룹으로의
분할을 의미한다.
- 그룹화 메서드 groupingBy()는 스트림의 요소를 Function 매개변수로 받는다.
- 분활 메서드 partitioningBy()는 스트림의 요소를 Predicate 매개변수로 받는다.
- 그룹화와 분할 메서드는 매개변수의 차이만 있을 뿐 동일하다. 그러나, 만약 두 개의 그룹으로
나눠야 한다면 partitioningBy()가 더 빠르고, 그 외는 groupingBy()를 사용한다.
- 그룹화와 분할의 결과는 Map에 담겨 반환된다.
- groupingBy()는 collect() 메서드(3)에서 할 것이다.
collect() 메서드(3) - groupingBy() (tistory.com)
collect() 메서드(3) - groupingBy()
kind-coding.tistory.com
( 아래의 Student의 정보가 있는 stu2클래스가 정의되어 있다고 가정하고 아래의 예제를 수행할 것이다. )
2. PartitioningBy()에 의한 분류
(1) 남,녀 학생의 성별을 분할하기.
(2) 남, 녀 학생의 성별로 분할 후, counting() 하기.
(3) 남, 녀 학생의 성별로 분할 후, 각각 최고 점수자를 출력하기.
( collectingAndThen()은 Optional<Stu>가 아닌 Stu를 뽑는 방법이다. )
(4) 남, 녀 학생의 성별을 분할 후, 점수가 100점 이하인 학생을 출력하기.
'자바 > 스트림' 카테고리의 다른 글
Collector (0) | 2022.04.21 |
---|---|
collect() 메서드(3) - groupingBy() (0) | 2022.04.20 |
collect() 메서드(1) (0) | 2022.04.19 |
스트림의 최종 연산(조건 검사, 통계, 리듀싱) (0) | 2022.04.15 |
Optional<T>와 OptionalInt (0) | 2022.04.15 |