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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM