stream流先分组后 金额字段求和 转成 map
时间: 2024-11-09 11:28:58 浏览: 70
在Java中,如果你有一个集合(例如List<BankTransaction>),其中包含一些交易记录,并且你想按账户ID(假设是一个String类型的字段)对交易金额进行分组并计算每个账户的总金额,你可以使用Java 8引入的Stream API来实现这个操作。这里是一个简单的例子:
```java
import java.util.*;
import java.util.stream.Collectors;
class BankTransaction {
String accountId;
double amount;
// constructor, getters and setters...
}
List<BankTransaction> transactions = ... // 假设这是你的交易列表
Map<String, Double> accountSums = transactions.stream()
.collect(Collectors.groupingBy(BankTransaction::getAccountId, Collectors.reducing(0.0, BankTransaction::getAmount, Double::sum));
// 现在accountSums是一个map,键是账户ID,值是对应账户的所有交易金额之和
```
在这个例子中,`Collectors.groupingBy()`方法用于按照账户ID对交易进行分组,`Collectors.reducing()`方法则在每个组内对金额进行累加,初始值为0.0,`Double::sum`是提供给reduce的二元操作供对double值进行相加。
阅读全文
相关推荐


















