| Factory method |
Returned Type |
Used to |
| toList |
List |
스트림의 아이템을 list로 반환한다. |
| ex |
|
List dishes = menuStream.collect(toList()); |
| toSet |
Set |
스트림의 아이템을 set으로 반환한다. 중복은 제거된다. |
| ex |
|
Set dishes = menuStream.collect(toSet()); |
| toCollection |
Collection |
스트림의 아이템을 컬렉션으로 넣는다. 이는 제공된 supplier에 의해서 생성된다. |
| ex |
|
Collection dishes = menuStream.collect(toCollection(), ArrayList::new); |
| counting |
Long |
스트림의 아이템을 센다. |
| ex |
|
long howManyDishes = menuStream.collect(counting()); |
| summingInt |
Integer |
스트림의 아이템의 정수 프로피터의 총 값을 계산한다. |
| ex |
|
int totalCalories = menuStream.collect(summingInt(Dish::getCalories)); |
| averagingInt |
Double |
스트림의 아이템의 정수 프로퍼티의 평균값을 계산한다. |
| ex |
|
double avgCalories = menuStream.collect(averagingInt(Dish::getCalories)); |
| summarizingInt |
IntSummary-Statistics |
스트림의 아이템들의 통계값을 계산한다. maximum, minimum, total, average |
| ex |
|
IntSummaryStatistics menuStatistics = menuStream.collect(summarizingInt(Dish::getCalories)); |
| joining |
String |
스트림의 각 아이템에서 toString의 호출 결과들을 연결한다. |
| ex |
|
String shortMenu = menuStream.map(Dish::getName).collect(joining(“,”)); |
| maxBy |
Optional |
주어진 comparator에 의해서 최대 엘리먼트를 구하여 Optional로 감싼값을 반환하거나 빈 Optional값을 반환한다. |
| ex |
|
Optional fattest = menuStream.collect(maxBy(comparingInt(Dish::getCalories))); |
| minBy |
Optional |
주어진 comparator에 의해서 최소 엘리먼트를 구하여 Optional로 감싼값을 반환하거나 빈 Optional값을 반환한다. |
| ex |
|
Optional lightest = menuStream.collect(minBy(comparingInt(Dish::getCalories))); |
| reducing |
reducing오퍼레이션으로 생성된 타입 |
Binary오퍼레이터를 이용하여 누적값이나 반복적으로 연결된 값을 반환하며, 초기값에서 부터 이러한 연산을 한다. |
| ex |
|
int totalCalories = menuStream.collect(reducing(0, Dish::getCalories, Integer::sum)); |
| collectingAndthen |
변환함수의 결과 타입을 반환한다. |
다른 컬렉터와 변환 함수 처리된 결과를 반환한다. |
| ex |
|
int howManyDishes = menuStream.collect(collectingAndThen(toList(), List:size)); |
| groupBy |
Map<K, List> |
스트림의 아이템들을 그루핑한다. 이는 프로퍼티중의 하나를 기준으로 그루핑되며, 결과 맵에 해당 값이 들어간다. |
| ex |
|
Map<Dish.Type, List> dishesByType = menuStream.collect(groupingBy(Dish::getType)); |
| partitioningBy |
Map<Boolean, List> |
스트림의 아이템의 파티션을 반환한다. 이는 각각의 predicate에 따라 파티션된다. |
| ex |
|
Map<Boolean, List> vegetarianDishes = menuStream.collect(partitioningBy(Dish::isVegetarian)); |