java 8 stream 处理对于 List<Map<String,Object>> 数据的分组求和
java 8 在推出stream 之后大大的简化了 对于集合等数据的处理在业务场景中经常会遇到对于批量数据在代码层面的汇总求和逻辑
这里就直接代码了
arrCollect=arrCollect.stream().collect(Collectors.groupingBy(e -> e.get("tName"))).values().stream().map(d -> {
Map<String, Object> sampleData = d.get(0);
sampleData.put("price", d.stream().map(s -> new BigDecimal(s.get("price").toString())).reduce(BigDecimal.ZERO, BigDecimal::add));
return sampleData;
}).collect(Collectors.toList());
以及对于List<T> 多个list 汇总成一个list
reduce(new ArrayList<WmTblWorkorder>(), (all, item ) -> {all.addAll(item); return all;}));
谢谢分享,这个函数式编程是面向行为的,简洁易懂值得学习。 个人认为,可读性不太高,平常会用在生产开发中吗? 是的在对于不同的地方获取到的数据 在代码层面进行分组汇总,我个人就用到了好多:lol 多个List合并成一个List 直接用addAll不也可以吗? 分组list 汇总
页:
[1]