目前,我有如下两个变量:
Map map1=new HashMap();
Map map2=new HashMap();
赋值1:map1 = map2,然后更新map1
public static void main(String[] args) {
Map map1=new HashMap();
Map map2=new HashMap();
map2.put("a1",1);
map2.put("a2",2);
map1 = map2;
map1.put("b1",3);
System.out.println("Map1集合大小为"+map1.size());
System.out.println("Map2集合大小为"+map2.size());
}
由于HashMap好像是地址引用,map2也被更新了。此时输出:
Map1集合大小为3
Map2集合大小为3
赋值2:map1.putAll(map2),然后更新map1的值,不改变map2的值
public static void main(String[] args) {
Map map1=new HashMap();
Map map2=new HashMap();
map2.put("a1",1);
map2.put("a2",2);
map1.putAll(map2);
map1.put("b1",3);
System.out.println("Map1集合大小为"+map1.size());
System.out.println("Map2集合大小为"+map2.size());
}
此时输出:
Map1集合大小为3
Map2集合大小为2