java复制Map 对象(深拷贝和浅拷贝)

tech2025-01-22  0

2. 通过 putAll()方法能实现浅拷贝和深拷贝, 使用Map对象只能实现浅拷贝

public static void main(String[] args) { // Map只能实现浅拷贝,paramMap中的内容发生变化,paramMap2中的内容亦同步发生变化 Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("name", "Marydon"); Map<String, String> paramMap2 = new HashMap<String, String>(); // 实现浅拷贝方式一:使用= 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<String, String> paramMap = new HashMap<String, String>(); paramMap.put("name", "Marydon"); HashMap<String, String> paramMap2 = new HashMap<String, String>(); // 实现深拷贝:使用HashMap.putAll() paramMap2.putAll(paramMap); paramMap.remove("name"); System.out.println(paramMap2);// {name=Marydon} }

最新回复(0)