0

私はこれを持っています、たとえばHashMap>に<> "11、name2、name1"と "14、name4、name5"があるとしましょう...最初に11を削除しようとすると、そのすべてのデータname2とname1が転送されますしかし、問題は14自身の元のデータname4とname5が上書きされることです。それらをすべて14に保持したいのですが、どうすればよいですか?あなたがそれで私を助けることができることを願っています。ありがとうございました。

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

1 に答える 1

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);
        }
    }
于 2013-02-16T14:55:08.407 に答える