groupingBy()
주어진 함수에 따라 스트림의 요소들을 그룹화.
각 그룹은 함수의 결과에 따라 맵의 키로 표현된다.
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<String> stream = Stream.of("Apple", "Banana", "Orange", "Apricot", "Avocado");
// 문자열의 길이에 따라 그룹화
Map<Integer, List<String>> result = stream.collect(Collectors.groupingBy(String::length));
System.out.println("Result: " + result);
// 출력: Result: {5=[Apple], 6=[Banana, Orange], 7=[Apricot, Avocado]}
}
}
partitioningBy()
주어진 조건에 따라 스트림의 요소들을 두 그룹으로 분할.
조건을 만족하는 요소들은 참(true)을 반환하는 그룹에 속하고,
그렇지 않은 요소들은 거짓(false)을 반환하는 그룹에 속한다.
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<String> stream = Stream.of("Apple", "Banana", "Orange", "Apricot", "Avocado");
// 문자열의 길이가 6 이상인지에 따라 분할
Map<Boolean, List<String>> result = stream.collect(Collectors.partitioningBy(s -> s.length() >= 6));
System.out.println("Result: " + result); // 출력: Result: {false=[Apple, Banana, Orange], true=[Apricot, Avocado]}
}
}
'JAVA' 카테고리의 다른 글
스트림의 변환 총정리: 언제 어떤 메서드를 써야하는가. (0) | 2024.03.13 |
---|---|
Collector 구현하기, 예시코드 (0) | 2024.03.13 |
collect() 문자열을 결합하다: joining() (0) | 2024.03.13 |
collect() 통계정보를 얻다: counting() summingInt() averagingInt() maxBy() minBy() (0) | 2024.03.13 |
collect() 스트림을 컬렉션과 배열로 전환하다: toList() toSet() toMap toCollection() toArray() (0) | 2024.03.13 |