2011-09-25 31 views
0

我复制一个ArrayList过像这样:去除重复的ArrayList中的对象只

MyList2 = MyList1; 

在试图加载MyList2的对象与MyList1拥有者。

现在,当我迭代MyList2时,我it.remove()一些对象,但是这会导致通过MyList1在父迭代的其他地方发生并发修改异常。我认为当我it.remove()它实际上是从原始的ArrayList中删除它,如何从MyList2中删除它?谢谢。

回答

3

你的问题在于你没有创建ArrayList的副本,有两个对同一个对象的引用。如果你要复制的列表,那么你可以做

Collections.copy(MyList2,MyList1); 

MyList2 = new ArrayList(MyList1); 
+0

感谢我用 “MyList2 =新的ArrayList(MyList1);”正确地复制它。一切都正常,并且不再有并发异常。 :) – user940982