我有这些来自数据库的样本记录,这是一个按照分组查询结果:
[
{
"name": "Troy",
"acct": 1123,
"type": " Savings",
"total": 50
},
{
"name": "Larry",
"acct": 4233,
"type": " Savings",
"total": 200
},
{
"name": "Troy",
"acct": 1123,
"type": " Current",
"total": 120
},
{
"name": "Larry",
"acct": 4233,
"type": " Current",
"total": 220
}
]
现在,我需要创建一个类似于这样的报告:
[
{
"name": "Troy",
"acct": 1123,
"totalSavings": 50,
"totalCurrent": 120
},
{
"name": "Larry",
"acct": 4233,
"totalSavings": 200,
"totalCurrent": 220
}
]
.
public class DbTrans {
private String name;
private String acct;
private String type;
private double total;
// getters and setters
...
}
我尝试使用一些lambda技术,如下所示,但仍未接近我想要的解决方案。
Map<String, List<DbTrans>> collect = transList.stream().collect(
Collectors.groupingBy(f -> f.getType()));
.collect(Collectors.groupingBy(DbTrans::getName, Collectors.groupingBy(DbTrans::getAcct))) .values().stream() .flatMap(m -> m.values().stream())
并不更容易。 - Youcef LAIDANI