Collector

Collector

Collector

  1. collect:收集器
  2. Collector作为collect方法的参数
  3. Collector是一个接口,它是一个可变的汇聚操作,将输入元素累积到一个可变的结果容器中;它会在所有元素都处理完毕后,将累积的结果转换为一个最终的表示(这是一个可选的操作);它支持串行与并行两种方式执行
  4. Collectors本身提供了关于Collector的常见汇聚实现,Collectors本身实际上是一个工厂
  5. 为了确保串行与并行操作结果的等价性,Collector函数需要满足两个条件:identity(同一性)与associativity(结合性)。
  6. a=combiner.apply(a, supplier.get())
  7. 函数式编程最大的特点:表示做什么,而不是如何做。

对于Collectors静态工厂来说,其实现一共分为两种情况:

  1. 通过CollectorImpl来实现。
  2. 通过reducing方法来实现;reducing方法本身又是通过CollectorImpl实现的。