java 將Map拷貝到另外一個Map對象當中

java 將Map拷貝到另外一個Map對象當中

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

Author:Marydon

1.需求說明html

  將一個MapA對象中全部的鍵值對徹底拷貝到另外一個MapB對象中;java

  另外一個MapB對象中原來的鍵值保持不變(不受影響);測試

  拷貝成功後MapB對象當中的內容將再也不隨着MapA中內容的變化而變化。spa

2.代碼實現code

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.測試htm

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

  

相關文章
相關標籤/搜索