Jdk8 - stream相关使用笔记(2)

191 阅读1分钟

动态的在每月月底插入一条小计,年底插入一条合计

  • 需求:列表展示年度数据,每月月末小计数据,年底合计数据
  • 思路:在月份(年份)切换的时候对已遍历的当月(当年)数据进行累计;定义两个变量month,year作为标志判断月份年份
  • 使用stream的聚合操作
  • 实现:
if(相同月份的数据存入list){
    ......
}else{
    //切换月份判断
    if(判断是哪个月份的数据){
        //给变量month、year赋值
        //传过来的第一条数据直接存list
    }else{
         //累计
         BigDecimal summenoy = list.stream()
             .map(Dto::getMoney)//取要进行计算的字段
             .reduce(BigDecimal.ZERO,BigDecimal::add);//累计计算
         //把结果存入list
         ...
         //重新给变量赋值
         ...
         //切换月份的第一条数据存入list
         ...
    }
}