【发布时间】:2018-10-15 17:02:58
【问题描述】:
我有一个HashMap:
HashMap<string, Integer> hmap = new HashMap<>();
我想增加 HashMap 值的地方。如果密钥不存在,为了避免nullPointer Exception,我检查它!假设数据是:
//201803271 - 1000
//201803271 - 1000
//201803272 - 1000
//inside a loop i read the data...
if (hmap.get("201803271") != null) {
hmap.put("201803271", hmap.get("201803271") + 1000);
}else{
hmap.put("201803271", 1000);
}
//end of loop
我得到的效果:
201803271 - 2000
201803272 - 1000
但是,我阅读了这个问题How to update a value, given a key in a java hashmap?,并且有一个使用Java 8 方法getOrDefault 的解决方案。我试过了
hmap.put("201803271", count.getOrDefault("201803271", 1000) + 1000)
但是,使用此解决方案我得到了错误的结果...
201803271 - 3000
201803272 - 2000
我错过了什么?
【问题讨论】: