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