一. 什么是Collectors?
Java 8 API添加了一个新的抽象称为流Stream,我们借助Stream API可以很方便的操作流对象。
Stream中有两个方法collect和collectingAndThen,可以借助Collectors收集器类对流中的数据进行聚合操作,例如将元素累积到集合中,并根据各种标准对元素进行汇总,分类等操作。
二. 举个例子?
//获取String集合
List strings = Arrays.asList("ab","","bc","cd","abcd","jkl");
//通过stream操作集合
List stringList = strings.stream()
//为集合中的每一个元素拼接“???”
.map(s -> s += "???")
//返回集合
.collect(Collectors.toList());
如代码所示,我们可以很方便的通过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类方法源码
public final class Collectors {
// 转换成集合
public static Collector> toList();
public static Collector> toSet();
public sta