使用map结构时,针对已存在的元素增加,不存在则新增
1. 冗余写法
Map<String, Integer> countMap3 = new HashMap<>();
if (countMap3.containsKey("张飞")) {
countMap3.put("张飞", countMap3.get("张飞") + 1);
}else{
countMap3.put("张飞", 1);
}
2. 使用merge方法简洁写法
Map<String, Integer> countMap3 = new HashMap<>();
countMap3.merge("houyi", 1, Integer::sum);
3. 其他数据结构的统计merge
Map<String, BigDecimal> countMap = new HashMap<>();
countMap.merge("houyi", new BigDecimal(10), BigDecimal::add);
Map<String, Long> countMap2 = new HashMap<>();
countMap2.merge("houyi", 5L, Long::sum);
4. 测试
@Test
public void mergeTest() {
Map<String, Integer> feeCountMap = new HashMap<>();
feeCountMap.merge("houyi", 1, Integer::sum);
feeCountMap.merge("houyi", 1, Integer::sum);
feeCountMap.merge("亚瑟", 1, Integer::sum);
feeCountMap.merge("亚瑟", 1, Integer::sum);
feeCountMap.merge("亚瑟", 1, Integer::sum);
for (String key : feeCountMap.keySet()) {
System.out.println("key: " + key + " , value: " + feeCountMap.get(key));
}
}