2013-02-16 81 views
0

我有这个东西,可以说HashMap>有<>“11,name2,name1”和“14,name4,name5”...所以我试图删除11首先和所有其数据名称2和名称1将被转移到14。但问题是14自己的原始数据名称4和名称5被覆盖。我想让他们都在14岁。我应该怎么做?希望你能帮助我。谢谢。HashMap重复键替换java

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

回答

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); 
     } 
    } 
+0

哇..感谢你:):..帮助很多 – user2064467 2013-02-16 15:07:49