1、Collect是一个终端操作,它接受的参数是将流中元素累计到汇总结果的各种方式(称为收集器,对应参数的函数式接口是Collector<T, A, R>)
2、Collector<T, A, R>:其中T、A、R分别是流中元素的类型、用于累积部分结果的对象类型,collect操作最终结果的类型。
3、预定义收集器java.util.steam.Collectors:包含将流元素归约和汇总到一个值,例如计算最小值、最大值或平均值。总结如下:
a)、Collector<T, ?, List<T>> toList();
把流中所有项目收集到一个List中。
b)、Collector<T, ?, Set<T>> toSet();
把流中所有项目收集到一个Set中(不会出项重复项)。
c)、Collector<T, ?, C> toCollection(Supplier<C> collectionFactory);
把流中所有项目收集到给定的供应源创建的集合中。
d)、Collector<T, ?, Long> counting();
计算流中元素的个数。
e)、Collector<T, ?, Integer> summingInt(ToIntFunction<? super T> mapper);
对流中项目的一个整数属性求和。
f)、Collector<T, ?, Double> averagingInt(ToIntFunction<? super T> mapper);
对流中项目的Integer属性计算平均值。
g)、Collector<T, ?, IntSummaryStatistics> summarizingInt(ToIntFunction<? super T> mapper);