stream流分组求和(stream groupings流分组策)
http://www.itjxue.com 2023-01-28 21:37 来源:未知 点击次数:
JDK8对List进行分组操作(stream的groupby)
对List进行分组,也可以理解为将List转换为Map集合。
group by生成一个拥有分组功能的Collector,有三个重载方法。
2.1 可以对结果进行映射
2.2 可以对结果进行求和
2.3 对结果的统计
如果kv是唯一对应的,可以使用Collectors.toMap来实现。
推荐阅读:JDK8中List转换为Map
JDK1.8新特性——Collector接口和Collectors工具类
class person{ int pv; BigDecimal payMoney; BigDecimal debtMoney; } 用java stream分组求和
创建一个class对象person,存放pv,paymoney,debtMoney这三个属性
再次创建map集合sum,用于存放统计结果
创建对象流ObjectStream,每次读取一个person对象,读取后进行累加操作。
得到求和后的map
Stream的各类型求和
打印结果:
IntSummaryStatistics{count=3, sum=12, min=2, average=4.000000, max=7}
统计集合元素的个数:3
集合元素累加之和:12
集合中最小值:7
集合中最大值:2
集合中平均值:4.0