我從ehcache中獲取Map<String , List>
對象。我不想更新Map
對象,而是我想將緩存的Map
的內容複製到臨時Map
中。如何創建Map
的副本,以便更改主Map
中的值也不會更改副本中的值。將緩存的Map <String,List>對象複製到臨時的Map <String,List>對象中
3
A
回答
1
您可以創建一個新的Map
實例,然後調用putAll(Map)
,傳入原始Map
。這會將所有鍵值映射覆制到新實例中。
如果您使用的是番石榴,您也可以撥打Maps.newHashMap(Map)
等,以實現同一效果。
4
這真的取決於你想要做什麼。如果你只需要一個淺拷貝,保羅的回答就夠了,還是做以下
Map<String, Object> fromEhcache = ...
Map<String, Object> copy = new HashMap<String, Object>(fromEhcache);
但是,如果你需要一個深拷貝,即你需要從地圖中的所有對象進行藏漢複製,你將不得不遍歷整個地圖,並單獨複製每個對象。另外,地圖中的對象必須支持某種形式的拷貝構造函數。
+0
+1值得一提的是深層複製 - OP應該真正地闡明「改變臨時地圖中的值」的含義。 –
+1
+1如果您想深入克隆,請閱讀本文討論http://stackoverflow.com/questions/665860/deep-clone-utility-recomendation – sperumal
相關問題
- 1. 將對象轉換爲java中的Map <String,String>
- 2. 如何從ArayList創建JSON對象<Map <String,String >>?
- 3. For-Each Loop,Map <String,Map <String,List <String> >>
- 4. Map <String,Map <String,Boolean >> myMap = new HashMap <String,HashMap <String,Boolean >>();
- 5. 將XML解析爲Java對象列表<Map <String,String >> sqlParams;
- 6. 如何使用相同的遞歸函數迭代Map <String,String>和Map <String,Map <String,String >>?
- 7. Map <Integer,String>或String []?
- 8. map <string,string>在類
- 9. Hadoop Map Reduce:MapOutputValueClass:Map <String,String>?
- 10. Post Map <String,List <String>>
- 11. 任務<String>在對象緩存
- 12. 如何在JAVA中將JAVAScript對象轉換爲Map <String,String>?
- 13. Map <String,Integer>和Map <Integer,String>排序
- 14. 將列表<Map <String,Object >>轉換爲Map <String,Integer>
- 15. 在scala中,如何將對象的值轉換爲Map [String,String]?
- 16. 如何從Map <String,Map <String,String >>中檢索內容?
- 17. 將值添加到列表<Map <String,String >>
- 18. 擁有一對<string,string>如何查找map中的某個對的一部分<string,string>?
- 19. map <string,pair <string,foo * >>和map <string,pair <string,foo&>>有什麼區別?
- 20. 將ArrayList <Map <String,String >>保存到SQLite數據庫中?
- 21. map <string,object>根據對象成員函數值排序
- 22. 有沒有將Dynamo Db Map <String,AttributeValue>映射到對象的庫?
- 23. 從List <Map <String,Object >>創建HashMap <String,Map>給出java.lang.ClassCastException
- 24. 如何將List <Map <String,Long>轉換成TreeMap或Map?
- 25. JPA Map <String,String []>映射
- 26. Java Map <String,String> data null error
- 27. 使用Volley可以發送JSON對象而不是HASH MAP <String,String>嗎?
- 28. 將對象添加到ArrayList <String>
- 29. 有沒有在protobuf 3中實現map <string,map <string,list <string> >>的方法?
- 30. 遍歷Java中的List <Map <String,String >>
感謝您的回覆... 我已經在構造函數中使用了傳遞映射,並把所有n甚至克隆。但是當我迭代來自map的List對象並從列表中更改對象時,它仍然會更改緩存的Map對象。 任何人都可以建議我們有任何像BeanUtils copyProperties這樣的util方法,它會將地圖值複製到另一個地圖而沒有任何鏈接。 – Mahesh