Слияние двух карт - PullRequest
       52

Слияние двух карт

24 голосов
/ 10 января 2012

У меня есть две карты, ключи которых String s, а значения Set<MyObject>. Учитывая два Map s, какой самый простой способ объединить их так, чтобы, если два ключа были идентичны, значение представляло собой объединение двух наборов. Вы можете предположить, что значения никогда не бывают нулевыми, и если это полезно, мы можем сделать эти Map s SortedMap s.

Ответы [ 11 ]

0 голосов
/ 12 февраля 2014
Map<Integer,String> m1=new HashMap<Integer,String>();
Map<Integer,String> m2=new HashMap<Integer,String>();
m1.put(1,"one");
m1.put(2,"two");
m2.put(3,"three");
m2.put(2,"two");
Set<Integer> s=m2.keySet();
for(int i:s){
    if(m1.get(i)==null){
        m1.put(i,m2.get(i));
    }
}
System.out.println(m1);
...