• 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);// {}
        
    }

      

  • 相关阅读:
    Mybatis实现数据的增删改查(CRUD)
    Spring MVC基础入门
    Swap in C C++ C# Java
    java和c#使用hessian通信
    基于Netty4的HttpServer和HttpClient的简单实现
    RabbitMQ的几种典型使用场景
    java多线程编程
    singleton pattern的推荐实现
    python多线程编程
    基于GMap.Net的地图解决方案
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9131893.html
Copyright © 2020-2023  润新知