2016-09-06 8 views
0

リストの要素のうちの1つを削除するときにエラーが発生しました(整数のリスト)。リストから要素を削除するときの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

関連する問題