zoukankan      html  css  js  c++  java
  • collector源码分析与收集器核心

    collect: 收集器

    Collector作为collect方法的参数

    Collector是一个接口

    是一个可变的汇聚操作,作用是将输入参数给累计到一个可变的结果容器中,它会在所有元素都处理完毕后,将累计后的结果转换为一个最终的表示(这是一个可选操作);

    支持串行与并行两种方式执行。

    比如说:将元素累积到Collection集合中,使用StringBuilder字符串进行拼接,计算sum、min、max或average等汇总信息,计算透视表 例如得到分组后每个“卖家的最大值交易” 

    Collectors本身提供了关于Collector的常见汇聚实现,Collectors本身实际上是一个工厂。

    一个Collectors由四个函数来指定的,将条目累积到可变结果容器中,并可选择执行结果的最终转换

    1.创建新的结果容器supplier()

    Supplier<A> supplier();

    2.将新数据元素合并到结果容器accumulator() 将一个值折叠到可变的结果容器中

    BiConsumer<A, T> accumulator();

    3.将两个结果容器合并为一个combiner()

    BinaryOperator<A> combiner();

    4.在容器上执行可选的最终转换finisher()

    Function<A, R> finisher();

    为了确保串行与并行操作结果的等价性,Collector函数需要满足两个条件:identity(同一性) 

    associativity(结合性)
  • 相关阅读:
    第六次作业SSM
    第五次作业——MVC2项目实践
    第四次作业——JSP显示新闻
    第三次作业——servlet应用
    第二次作业——模仿登录页面
    第一次作业——Java web基础
    Alpha项目测试
    作业三
    第二次作业
    第一次阅读作业-201731062609-庞斌
  • 原文地址:https://www.cnblogs.com/alter888/p/12734637.html
Copyright © 2011-2022 走看看