java复制Map 对象(深拷贝和浅拷贝)
java复制Map 对象(深拷贝和浅拷贝)
2. 通过 putAll()方法能实现浅拷贝和深拷贝,
使用Map对象只能实现浅拷贝
public static void main(String[] args) {
// Map只能实现浅拷贝,paramMap中的内容发生变化,paramMap2中的内容亦同步发生变化
Map paramMap = new HashMap();
paramMap.put("name", "Marydon");
Map paramMap2 = new HashMap();
// 实现浅拷贝方式一:使用=
paramMap2 = paramMap;
paramMap.remove("name");
System.out.println(paramMap2);//{}
// 实现浅拷贝方式二:使用Map.putAll()
paramMap2.putAll(paramMap);
paramMap.remove("name");
System.out.println(paramMap2);//{}
}
使用HashMap 实现深拷贝
public static void main(String[] args) {
// HashMap可以实现真正意义上深拷贝,注意不是Map
HashMap paramMap = new HashMap();
paramMap.put("name", "Marydon");
HashMap paramMap2 = new HashMap();
// 实现深拷贝:使用HashMap.putAll()
paramMap2.putAll(paramMap);
paramMap.remove("name");
System.out.println(paramMap2);// {name=Marydon}
}
java复制Map 对象(深拷贝和浅拷贝)相关教程