請嘗試類似的東西:
Map<Object,Map<Object,Map<Object,Object>>> deepCopy(Map<Object,Map<Object,Map<Object,Object>>> src) {
final Map<Object,Map<Object,Map<Object,Object>>> dst = new HashMap<Object, Map<Object, Map<Object, Object>>>();
for (Object key : src.keySet()) {
final HashMap<Object, Map<Object, Object>> copy = new HashMap<Object, Map<Object, Object>>();
final Map<Object, Map<Object, Object>> innerMap = src.get(key);
for (Object innerKey : innerMap.keySet()) {
Map<Object,Object> innerCopy = new HashMap<Object, Object>(innerMap.get(innerKey));
copy.put(innerKey, innerCopy);
}
dst.put(key, copy);
}
return dst;
}
我真的不知道它的工作,但我覺得你的想法......你必須Map<Object,Object>
複製到另一個Map<Object,Object>
上的最低水平。 ,以上各級需要「從原來的 - >用同樣的鑰匙複製」。
>感謝您的支持。但是如果我的地圖像這樣: Map
我沒有看到任何其他解決方案。這個想法是,你必須在任何地方都有新的參考,這不是初始地圖的參考。我無法想象如果沒有遍歷所有對象的樹,它是如何可能的。 –
對不起,我想我誤解了你的評論。 「長」,你的意思是,不是性能(我所理解的),而是代碼行。如果是這樣,您可以按照此處所述的類似方法使用遞歸:http://stackoverflow.com/a/9337639/1842599 –