概述
上文我们介绍了JDK8新添加的Stream流接口,借助Stream配合拉姆达表达式,我们可以很方便的处理流对象。
针对流的聚合操作,Stream有一个对应的收集器类Collectors,通过Stream中的collect和collectingAndThen方法,我们可以借助收集器类聚合流中的数据,例如将元素累积到集合中,并根据各种标准对元素进行汇总,分类等操作。
二. 举个例子?
1  | //获取String集合  | 
如代码所示,我们可以很方便的通过Collectors类对被处理的流数据进行聚合操作,包括并不仅限与将处理过的流转换成集合
三. 如何使用Collectors?
1. Collectors类中提供的方法
总结一下,就是以下几类方法:
1.1 转换成集合:toList(),toSet(),toMap(),toCollection()
1.2 将集合拆分拼接成字符串:joining()
1.3 求最大值、最小值、求和、平均值 :maxBy(),minBy(),summingInt(),averagingDouble()
1.4 对集合分组:groupingBy(),partitioningBy()
1.5 对数据进行映射:mapping()
2. Collectors类方法源码
1  | public final class Collectors {  | 
四. 实例
1  | //接下来的示例代码基于此集合  | 
1. 将流数据转换成集合
1  | //转换成list集合  | 
2. 将集合拆分拼接成字符串
1  | //joining  | 
3. 求最大值、最小值、求和、平均值
1  | List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);  | 
虽然这样也可以,但是明显IntSummaryStatistics要更灵活点
4. 对集合分组
1  | Map<Integer, List<String>> map = strings.stream()  | 
5.对数据进行映射
1  | String str = strings.stream().collect(Collectors.mapping(  | 
。