Java深拷贝和浅拷贝Map对象
创始人
2024-05-20 07:20:53
0

目录

  • 1 将Map深拷贝到另一个Map对象当中
  • 2 浅拷贝Map


1 将Map深拷贝到另一个Map对象当中

今天赋值的时候遇到的小坑

相关文章推荐:
Java克隆方式避免频繁创建对象优化方案 https://blog.csdn.net/ZGL_cyy/article/details/126556907

1.需求说明

将一个MapA对象中所有的键值对完全拷贝到另一个MapB对象中;

另一个MapB对象中原来的键值保持不变(不受影响);

拷贝成功后MapB对象当中的内容将不再随着MapA中内容的变化而变化。

2.代码实现

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/*** 复制map对象* @explain 将paramsMap中的键值对全部拷贝到resultMap中;* paramsMap中的内容不会影响到resultMap(深拷贝)* @param paramsMap*     被拷贝对象* @param resultMap*     拷贝后的对象*/
public static void mapCopy(Map paramsMap, Map resultMap) {if (resultMap == null) resultMap = new HashMap();if (paramsMap == null) return;Iterator it = paramsMap.entrySet().iterator();while (it.hasNext()) {Map.Entry entry = (Map.Entry) it.next();Object key = entry.getKey();resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : "");}
}

3.测试

public class TestDemo {public static void main(String[] args) {Map map = new HashMap(1);map.put("name", "oldlu");Map map2 = new HashMap(1);map2.put("age", 28);// 测试一:是否实现拷贝mapCopy(map2, map);System.out.println(map);System.out.println(map2);// 测试二:拷贝后的map对象是否受原map对象的影响map2.clear();System.out.println(map);System.out.println(map2);}}

结果如图

在这里插入图片描述

同理resultMap.putAll也是深拷贝

2 浅拷贝Map

1 测试代码


public class TestDemo {public static void main(String[] args) {// 赋值操作:=只能实现浅拷贝,map中的内容发生变化,copyMap中的内容亦同步发生变化Map map = new HashMap(1);map.put("name", "oldlu");Map copyMap = new HashMap(1);// 实现浅拷贝的方式:使用=copyMap = map;map.remove("name");System.out.println("map:" + map);System.out.print("copyMap:" + copyMap);}}

测试结果

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...