假设在Java集合的Hash映射中已经有一对0,“Ram”并且我添加了一个新的对0,“Sham”具有相同的密钥。我知道它覆盖了值,最后我们得到哈希集中的0,“Sham”。 我的问题是为什么“假”,即更新的元素覆盖“Ram”,即前一个元素?是否有任何函数可以阻止此覆盖,或者我应该使用if-else条件对其进行检查?
答案 0 :(得分:1)
您可以使用委托技术编写自己的put方法,如果map中已存在任何值,则忽略put的调用并返回false状态。
boolean putIfNotPresent(Map map, Object key, Object value){
if(map.get(key)==null){
map.put(key, value);
return true;
}else{
return false;
}
}
为什么默认情况下会覆盖值:
它完全是关于功能的用例。 Java实现了最常见的用例。任何特定用例都有选项。