我有一个列表 fooList
class Foo {
private String category;
private int amount;
private int price;
... constructor, getters & setters
}
我想按类别分组,然后合计金额和价格。
结果将存储在地图中:
Map<Foo, List<Foo>> map = new HashMap<>();
关键是 Foo 保存汇总的数量和价格,具有相同类别的所有对象的列表作为值。
到目前为止,我已经尝试了以下内容:
Map<String, List<Foo>> map = fooList.stream().collect(groupingBy(Foo::getCategory()));
现在我只需要用保存汇总金额和价格的 Foo 对象替换 String 键。这就是我被困的地方。我似乎找不到任何方法来做到这一点。
原文由 MatMat 发布,翻译遵循 CC BY-SA 4.0 许可协议
有点难看,但它应该工作: