2014-12-25 44 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方法。

相關問題