【发布时间】:2020-04-23 19:08:16
【问题描述】:
我有一个我想要的交易列表:
- 按年份划分的第一组
- 然后按类型对当年的每笔交易进行分组
- 然后将事务转换为具有子组中所有事务值总和的结果对象。
我的代码 sn-ps 看起来像:
Map<Integer, Map<String, Result> res = transactions.stream().collect(Collectors
.groupingBy(Transaction::getYear,
groupingBy(Transaction::getType),
reducing((a,b)-> new Result("YEAR_TYPE", a.getAmount() + b.getAmount()))
));
事务类:
class Transaction {
private int year;
private String type;
private int value;
}
结果类:
class Result {
private String group;
private int amount;
}
它似乎不起作用,我应该怎么做才能解决这个问题以确保它也适用于并行流?
【问题讨论】:
标签: java lambda java-8 java-stream collectors