gpt4 book ai didi

Java,更新 map

转载 作者:行者123 更新时间:2023-11-29 06:41:44 24 4
gpt4 key购买 nike

如果 map 定义为

private Map<Integer, Integer>   map = new HashMap<Integer, Integer>();

更新 key 工作正常,如下所示

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 中删除元素的情况下完成同样的操作? (map.remove(fileHashCode);)

++(map.get(fileHashCode)); 看起来不错,但 Java 不喜欢它

最佳答案

你不需要

map.remove(fileHashCode);

put() 将自动覆盖条目。您可以像这样缩短 increaseCount() 方法:

private void increaseCount(Integer fileHashCode) {
map.put(fileHashCode, map.get(fileHashCode)+1);
}

老实说,我认为您在代码中添加了太多抽象。除非您有充分的理由,否则它真的应该只是一种方法:

public void increaseCountInFile(Integer hashCode) {
if(map.containsKey(hashCode)) {
map.put(hashCode, map.get(hashCode)+1);
} else {
map.put(hashCode, 1);
}
}

关于Java,更新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com