package cn.hnthyy.thmz.Utils;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapUtil {

    /**
     * 复制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) : "");

        }
    }


    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>(1);
        map.put("name", "Marydon");
        Map<String, Object> map2 = new HashMap<>(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);// {}

    }
}
