HashMap重复键替换java

时间:2013-02-16 14:47:29

标签: java hashmap

我有这个东西,让我们说HashMap>有<> “11,name2,name1”和“14,name4,name5”......所以我试图首先删除11,其所有数据name2和name1将被转移到14.但问题是14的自己的原始数据名称4和名称5被覆盖。我希望将它们全部保留在14中。我该怎么做?希望你能帮助我。谢谢。

List<String> oldValue = map.remove(oldKey);
map.put(newKey, oldValue);

1 个答案:

答案 0 :(得分:2)

您可以尝试以下方式。从旧密钥中提取旧列表。并将列表项添加到新密钥列表中。

// remove old key
    List<String> oldValue = map.remove(oldKey);
    // add new key with empty list if not exists
    if(!map.containsKey(newKey))
    {
        map.put(newKey, new LinkedList<String>());
    }
    // new list for new value
    List<String> newValue = map.get(newKey);
    // add items from old value to new list
    for(String s : oldValue){
        // eliminate possible duplicates
        if(!newValue.contains(s)){
            newValue.add(s);
        }
    }