マップが次のように定義されている場合
private Map<Integer, Integer> map = new HashMap<Integer, Integer>();
キーの更新は、以下に示すように正常に機能します
public void increaseCountInFile(Integer hashCode) {
if (mapContains(hashCode)) {
increaseCount(hashCode);
} else {
map.put(hashCode, 1);
}
}
private void increaseCount(Integer fileHashCode) {
Integer key = map.get(fileHashCode);
map.remove(fileHashCode);
map.put(fileHashCode, ++key);
}
private boolean mapContains(Integer fileHashCode) {
return map.containsKey(fileHashCode);
}
しかし、マップから要素を削除せずに同じことができるのだろうか?(map.remove(fileHashCode);
)
++(map.get(fileHashCode));
見た目は良いですが、Javaはそれが好きではありません