请问如何合并两个JAVA Map?假设有两个Map1, Map2如何合并他们成为一个Map?有没有现成的lib?

解决方案 »

  1.   

    putAll()方法,具体使用可以查阅JDK文档喵~```
      

  2.   

    你怎么合并?如果key有重复怎么办?还是要把key相同的value合并呢?
      

  3.   

    当然要考虑duplicate key的情况,如果有重复可以用Map2的替换Map1的
      

  4.   

    就是上面几位写的那个Map1.putAll(Map2)方法阿,Map2会替换Map1重复的key。
      

  5.   


    import java.util.*;public class MapTest {
    public static void main(String[] args) {
    Map mapA = new HashMap();
    Map mapB = new HashMap();
    Map mapAB = new HashMap(); mapA.put("A","A");
    mapA.put("B","B");

    mapB.put("A","C");
    mapB.put("D","D");

    mapAB.putAll(mapA);
    mapAB.putAll(mapB); System.out.println( mapA );//{A=A, B=B}
    System.out.println( mapB );//{D=D, A=C}
    System.out.println( mapAB );//{D=D, A=C, B=B}
    }
    }
    用putAll,由以上示例可见,再合并过程中,重复键"A"的值被覆盖。
      

  6.   

    public void putAll(Map<? extends K, ? extends V> m) {
      

  7.   

    我现在有一个需求,重复的key的value能相加吗?
      

  8.   

    Set<Map.Entry<K,V>> entrySet() 
    boolean containsKey(Object key)
     V put(K key, V value)  
    JDK上面的3个方法差不多了,要你自己遍历查找,循环比较,添加  
      

  9.   

    9L的已经说明了,重复的Key,value会被最后一次添加的覆盖掉·
      

  10.   

    好像有现成的方法。但这个方法会不会去掉duplicate就不知道了。其实LZ可以根据自己的需求自己写个算法嘛