我有 Item 对象的列表。 ItemCategory 是一个枚举。
public class Item {
private String itemId;
private String itemName;
private ItemCategory itemCategory;
private Integer quantity;
}
我想将此列表转换为 {ItemCategory -> total_quantity}
的地图
例如
"items":[
{
"itemId": "item_1",
"itemName": "A",
"itemCategory": "category1",
"quantity": 50
},
{
"itemId": "item_2",
"itemName": "B",
"itemCategory": "category1",
"quantity": 10
},
{
"itemId": "item_3",
"itemName": "C",
"itemCategory": "category2",
"quantity": 10
}
]
这将被转换为地图:{"category1"->60, "category2"->10}
简单的方法是遍历项目并创建地图。
我在想是否有办法使用流来实现这一点。
答案 0 :(得分:1)
您可以使用流进行该操作。
items.stream().collect(Collectors.groupingBy(Item::getItemCategory, Collectors.summingInt(Item::getQuantity)))