1 java.util.stream包结构图
承接上篇博文,下面讲解一下在收集器中用到的collector、collectors、collect三者之间的关系。
下图为java.util.stream包的结构图。
2 collector、collectors、collect的关系
2.1 collector接口
对于Reduce操作的抽象。此接口中定义了常用的Reduce操作。
其中定义的Reduce操作可以通过串行或者并行的方式进行实现。BaseStream接口中的parallel,sequential,unordered方法提供的高层API使并发程序设计变得非常简洁。
毕竟,Map-Filter-Reduce模式的灵魂就在于并行计算。
2.2 collectors工厂类
提供了众多可以直接使用的Reduce操作。
典型的比如groupingBy以及partitioningBy操作。它们都可以通过串行或者并行的方式进行实现。比如,groupingByConcurrent会使用并行的方式进行grouping操作。
2.3 collect方法
collect方法是stream接口的一个常用的实现方法。