2011-09-26 60 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