为什么Java哈希映射的元素会覆盖以前的元素?

时间:2017-03-29 07:27:14

标签: collections hashmap key override

假设在Java集合的Hash映射中已经有一对0,“Ram”并且我添加了一个新的对0,“Sham”具有相同的密钥。我知道它覆盖了值,最后我们得到哈希集中的0,“Sham”。 我的问题是为什么“假”,即更新的元素覆盖“Ram”,即前一个元素?是否有任何函数可以阻止此覆盖,或者我应该使用if-else条件对其进行检查?

1 个答案:

答案 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实现了最常见的用例。任何特定用例都有选项。