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(结合性)
  • 相关阅读:
    HTML5表单元素的学习
    微博账号注册
    微博三方登陆流程
    Vue发送短信逻辑
    celery异步发送短信
    celery
    celery
    jwt安装配置与原理
    图片验证
    Vue组件
  • 原文地址:https://www.cnblogs.com/alter888/p/12734637.html
Copyright © 2011-2022 走看看