У меня есть 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
Но я прочитал этот вопрос Как обновить значение, учитывая ключ в хэш-карте Java? и есть решение использовать метод Java 8 getOrDefault
. Я попробовал это
hmap.put("201803271", count.getOrDefault("201803271", 1000) + 1000)
Однако, с этим решением я получаю неправильные результаты ...
201803271 - 3000
201803272 - 2000
Чего мне не хватает?