2016-09-06 29 views
0

刪除我的列表(整數列表)中的一個元素時出錯。 我使用迭代器刪除元素從(整數列表)列表中刪除元素時發生Java錯誤

這裏是我的代碼:

List<List<Integer>> list = new ArrayList<List<Integer>>(); 
.... 
.... 
Iterator<List<Integer>> myListIterator = list.iterator(); 
int ct1 = 0; 
while (myListIterator.hasNext()) { 
    List<Integer> val = myListIterator.next(); // here is the error 
    if(ct1 == val.get(0)) 
     list.remove(val); 
    ct1++; 
} 

而且我得到這個錯誤信息:

Exception in thread "main" java.util.ConcurrentModificationException 
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source) 
    at java.util.ArrayList$Itr.next(Unknown Source) 

有誰知道什麼是錯我的代碼? 謝謝你們!

回答

2

因爲您在使用迭代器時刪除了一個元素。一個可能的解決方案是,使用帶索引的循環,並且可以安全地刪除該元素。你也可以使用myListIterator.remove();

+0

所以我應該使用for循環嗎? – DanielH

+0

它應該工作。 –

+0

是的,它的工作原理,謝謝! – DanielH