Ram*_*ana 2 java spring java-8 spring-boot
我正在尝试从数组下方构造一个 HashMap
product: [
{
id: 12345
qty: 5
},
{
id: 12345
qty: 6
},
{
id: 98765
qty: 10
}
]
Run Code Online (Sandbox Code Playgroud)
代码:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
从上面的方法中,我正在检查地图中的键,如果是,则通过覆盖现有键将 qty 添加到 totalQty 中,任何在对值求和时不覆盖的最佳方法?
你可以这样做:
products.stream().collect(toMap(Product::getId,Product::getQty,Intger::sum));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |