Java8系列--Java Stream进阶篇(collector、collectors、colltect的关系)

来源:互联网 发布:魔术手淘宝产品复制 编辑:程序博客网 时间:2024/04/27 16:21

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接口的一个常用的实现方法。