zoukankan      html  css  js  c++  java
  • stream对bean中多个项目进行分组合计的两种实现方式

    1.一个一个项目的分组合计

    list.stream().collect(

                                    Collectors..groupingBy(

                                                                          Bean::getItemA

                                                                         ,Collectors..groupingBy(

                                                                                                                Bean::getItemB,

                                                                                                                Collectors..reducing(

                                                                                                                                                 new Bean(),

                                                                                                                                                 (oldBean,newBean) -> {

                                                                                                                                                                                      Bean oldBeanA = (Bean)oldBean;

                                                                                                                                                                                      Bean newBeanA = (Bean)newBean;

                                                                                                                                                                                      if (StringUtils.isEmpty(oldBeanA .getItemA())) {

                                                                                                                                                                                                                                                                  return newBeanA;

                                                                                                                                                                                                                                                                }

                                                                                                                                                                                      oldBeanA.setItemC(oldBeanA.getItemC()+newBeanA.getItemC());

                                                                                                                                                                                      oldBeanA.setItemD(oldBeanA.getItemD()+newBeanA.getItemD());

                                                                                                                                                                                      return oldBeanA;

                                                                                                                                                                                      }

                                                                                                                                                )

                                                                                                               )

                                                                        )

                                  )

    2.利用复合Key实现多项目分组合计

    list.stream().collect(

                                   Collectors.groupingBy(

                                                                       bean -> bean.getItemA() + bean.getItemB(),

                                                                       Collectors.reducing(内容与上面的处理相同)

                                                                       )

                                  )

  • 相关阅读:
    Excel中输入身份证后3位变成0,怎么办?
    Css中如何使英文和拼音变成全大写、全小写和首字母大写?
    css中 font常用的样式属性
    Css的向左浮动、先右浮动、绝对定位、相对定位的简单使用
    如何解决Css属性text-overflow:ellipsis 不起作用(文本溢出显示省略号)
    mysql 基本语法学习1(数据库、数据表、数据列的操作)
    sql server中如何将两个字段数据合并成一个字段显示(字段与字段添加特殊符号)
    Linq to Entity 求最大小值Max/Min返回null的处理方法
    C#匿名对象在其它方法体内怎么取到相应的值(不想建立对应的类并转化的情况下)?
    【转发】JQuery中操作Css样式的方法
  • 原文地址:https://www.cnblogs.com/wzhw2015/p/12381518.html
Copyright © 2011-2022 走看看