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

CreateTime--2018年6月4日09点46分

Author:Marydon

1.需求说明

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

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

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

2.代码实现

  1. import java.util.HashMap;
  2. import java.util.Iterator;
  3. import java.util.Map;
  1. /**
  2. * 复制map对象
  3. * @explain 将paramsMap中的键值对全部拷贝到resultMap中;
  4. * paramsMap中的内容不会影响到resultMap(深拷贝)
  5. * @param paramsMap
  6. * 被拷贝对象
  7. * @param resultMap
  8. * 拷贝后的对象
  9. */
  10. public static void mapCopy(Map paramsMap, Map resultMap) {
  11. if (resultMap == null) resultMap = new HashMap();
  12. if (paramsMap == null) return;
  13.  
  14. Iterator it = paramsMap.entrySet().iterator();
  15. while (it.hasNext()) {
  16. Map.Entry entry = (Map.Entry) it.next();
  17. Object key = entry.getKey();
  18. resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : "");
  19.  
  20. }
  21. }

3.测试

  1. public static void main(String[] args) {
  2. Map<String, String> map = new HashMap<String, String>(1);
  3. map.put("name", "Marydon");
  4. Map<String, Object> map2 = new HashMap<String, Object>(1);
  5. map2.put("age", 20);
  6. // 测试一:是否实现拷贝
  7. mapCopy(map2, map);
  8. System.out.println(map);// {age=20, name=Marydon}
  9. System.out.println(map2);// {age=20}
  10. // 测试二:拷贝后的map对象是否受原map对象的影响
  11. map2.clear();
  12. System.out.println(map);// {age=20, name=Marydon}
  13. System.out.println(map2);// {}
  14.  
  15. }

  

 

java 将Map拷贝到另一个Map对象当中的更多相关文章

  1. 判断map是否包含另一个map

    判断map是否包含另一个map: map不同与list集合,list集合有直接判断集合是否包含其他集合或者元素的方法. boolean contains(Object o) 如果list包含指定的元素 ...

  2. 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt。

    package example; import java.io.*; public class Test { public static void main(String[] args) throws ...

  3. java catch 捕获异常后会产生一个实例对象 该对象能使用父类的方法

  4. Java虚拟机系列(二)---HotSpot虚拟机对象

    都知道Java是一门面向对象的编程语言,在Java程序运行过程中,无时无刻不在创建对象,所以这节来总结一下HotSpot虚拟机中的Java对象. 一.Java虚拟机对象的创建过程. 在语义层面创建一个 ...

  5. [Java编程思想] 第二章 一切都是对象

    第二章 一切都是对象 2.1 用引用操纵对象   创建一个String引用: String s;   这里所创建的只是引用,并不是对象.   创建一个引用的同时便初始化: String s = &qu ...

  6. BeanUtils使用:从一个map集合中,拷贝到javaBean中(四)

    package beanutil; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; impo ...

  7. Bean-Query 一个把对象转换为Map的Java工具库

    刚开源了一个经过完整測试的Java工具类. 地址例如以下: https://github.com/Jimmy-Shi/bean-query 使用说明例如以下: Bean-query Click Her ...

  8. java map添加另一个map时候 键值对的类型要一致

    java map添加另一个map时候 键值对的类型要一致

  9. java中list里面存放map,根据map中的某一个字段进行排序

    package com; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; ...

随机推荐

  1. latch lock pin mutex

    http://blog.163.com/liaoxiangui@126/blog/static/79569640201310773821804/ http://www.cnblogs.com/eric ...

  2. codeforces 558B Amr and The Large Array-yy

    题意:有一个数组.如今要削减它的尺寸.数组中同样元素的个数的最大值为数组的魅力值,要求削减后魅力值不能降低,同一时候要尽可能的把尺寸减到最小 分析:水题,主要是不要想复杂了.还有就是沉下心来做 代码: ...

  3. java内存溢出示例(堆溢出、栈溢出)

    堆溢出: /** * @author LXA * 堆溢出 */ public class Heap { public static void main(String[] args) { ArrayLi ...

  4. 找回 : MobileCoreServices.framework

    MobileCoreServices.framework   丢失后,可通过如下方式找回: 1.在同事机器上拷贝一个. 路径: 2.重装一个xcode 实践:将xcode4.5下的文件拷到xcode4 ...

  5. python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...

  6. 求助关于jquery easyUI中的treegrid组件,请各位帮忙给个思路,谢谢啦

    现在项目中用到jquery easyUI中的treegrid组件,已经可以正常显示了.但是在保存的时候遇到问题,页面上参照官网的例子可以在页面更新,但是怎么获取编辑后的数据进而保存到数据库呢?

  7. [Android Pro] Android源码编译后,再重编译所需要做的清理工作

    1.在源码目录的根目录下,make clean; 2.进到源码的\linux\kernel\目录下,执行make mrproper: 3.再退回到根目录,执行source  build/envsetu ...

  8. OpenShift 项目的备份和恢复实验

    本测试记录从openshift 3.6环境中导出项目,然后在将项目环境恢复到Openshift 3.11中所需要的步骤 从而指导导入导出的升级过程. 1.安装Openshift 3.6版本 过程略 2 ...

  9. 高效的数据压缩编码方式 Protobuf

    一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等. Protocol buffers ...

  10. C++ cout 格式化输出方法

    C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? iomanip是I/O流控制头文件,就像printf的格式化输出一样. 以下是一些常用的: dec 置基数为10 相 ...