2014-12-25 67 views
-3

此异常上升为什么在这里引发java.util.ConcurrentModificationException?

Exception in thread "main" java.util.ConcurrentModificationException 
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source) 
    at java.util.ArrayList$Itr.next(Unknown Source) 
    at noob.Prim_up_to.prim(Prim_up_to.java:72) 
    at noob.Prim_up_to.<init>(Prim_up_to.java:21) 
    at _ex.main(_ex.java:11) 

下面是相关代码:http://pastebin.com/w6d0hyXb

为什么出现这种情况?我尝试使用迭代器,但无济于事。然而,同样的例外显示。

+0

这不是一个完全重复的!由于将列表分配给另一个列表,问题稍微复杂一些。 即: 这是不容易被发现,但在你的代码某些时候你进行分配'SS = NSS;' 但你'为loop'你打电话'nss.add(新的整数(NPP-lrpp内));', 所以'ss = nss'你确实在修改集合的同时迭代它! 尝试使用迭代器或深层副本'nss'到'ss' –

回答

1

当您在迭代它时修改(在本例中)ArrayList时,会引发此异常。如果您必须在迭代过程中修改ArrayList,请考虑使用ListIterator,它有一个addremove方法。

相关问题