java 将Map拷贝到另一个Map对象当中
java 将Map拷贝到另一个Map对象当中
CreateTime--2018年6月4日09点46分
Author:Marydon
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 static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(1); map.put("name", "Marydon"); Map<String, Object> map2 = new HashMap<String, Object>(1); map2.put("age", 20); // 测试一:是否实现拷贝 mapCopy(map2, map); System.out.println(map);// {age=20, name=Marydon} System.out.println(map2);// {age=20} // 测试二:拷贝后的map对象是否受原map对象的影响 map2.clear(); System.out.println(map);// {age=20, name=Marydon} System.out.println(map2);// {} }
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/9131893.html