list.stream先分组,然后累加某字段金额
时间: 2023-08-16 07:07:41 浏览: 137
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
可以使用Java 8的stream API来实现这个功能。假设我们有一个包含多个对象的List,每个对象包含一个金额字段和一个分类字段,我们可以按照分类字段进行分组,然后对每组进行金额字段的累加。
具体实现代码如下:
```java
Map<String, Double> result = list.stream()
.collect(Collectors.groupingBy(
Object::getCategory, // 分组条件
Collectors.summingDouble(Object::getAmount) // 累加金额
));
```
其中,Object是我们自定义的对象,getCategory和getAmount分别是获取分类和金额的方法。上述代码会返回一个Map,其中键是分类字段的值,值是该分类下所有对象的金额字段累加和。
需要注意的是,这里使用了Java 8新增的Collectors.summingDouble方法来对金额字段进行累加。如果金额字段是整型的话,需要使用Collectors.summingInt方法。
阅读全文