我正在尝试从下面的数组构造一个HashMap
product: [
{
id: 12345
qty: 5
},
{
id: 12345
qty: 6
},
{
id: 98765
qty: 10
}
]
码:
HashMap<Long, Integer> productMap = new HashMap<>();
int totalQty = 0;
for (Product product : products) {
Long id = product.getId();
if (productMap.containsKey(id)) {
productMap.put(id, totalQty + productMap.get(id).intValue());
} else {
productMap.put(id, totalQty);
}
}
从上面的方法中,我正在检查地图中的键,如果是,则通过覆盖现有键将数量添加到totalQty中,最好的方法是在求和值时不覆盖?
您可以这样:
products.stream().collect(toMap(Product::getId,Product::getQty,Intger::sum));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句