2011-09-26 50 views

回答

1

當你添加了一些容器,要添加的參考(不是它所引用的對象的副本),如果你想添加一個副本(這樣,如果你可以改變原來的,和複製添加到列表不會改變),你必須明確地複製它。

例如

Map<Integer, Integer> map = new LinkedHashMap<Integer, Integer>(); 
for(int i=0;i<10;i++) 
    map.put(i, i); 
list.add(new LinkedHashMap<Integer, Integer>(map)); // add a copy. 
// you can change map without the list changing as well. 
+0

謝謝,這解決了我的問題 –

0

您必須聲明for之外的每個對象,否則你將只是一個參考,而任何修改修改所有。

1

試試這個。

for (condition) { 
    if (!map.containskey(key)) { 
     map.put(key,value); 
    }     
}    
result.add(map); 
+1

即使這個問題沒有多大意義,這很可能是他的意思。 – Carlos