2016-07-14 9 views
0

java.util.ConcurrentModificationExceptionに何か問題があります。私がオートコンプリートテキストで1つ以上のキャラクタを削除したとき、私は強制的にクローズしました。誰もそれがどうなるのか知っていますか?その問題の解決策は何ですか?エラーjava.util.ConcurrentModificationExceptionを修正するには?

ありがとうございます。

答えて

0

同じ時点でコレクションから何かを追加したり削除したりしているようです。これを行うことで、コレクションを一度に複数回構造的に変更しています。したがって、java.util.ConcurrentModificationExceptionを取得しています。これは、コレクションで "Fail-Fast"イテレータが使用された結果です。 フェイルセーフイテレータとフェイルファーストイテレータについて説明しています。 what-is-fail-safe-fail-fast-iterators-in-java-how-they-are-implementedと答えをチェックしてください。

+0

この問題を解決するコード例がありますか? – Nicholas

+0

あなたが同じ時点でコレクションを構造的に変更しようとしている場合、そのコレクションを反復処理するために使用しているイテレータは失敗します。次の例のスニペットを確認してください: 'ArrayList sampleList = new ArrayList (); sampleList.add( "hello"); sampleList.add( "world"); イテレータ sampleListItr = sampleList.iterator(); //リストから最初の項目を削除しようとすると、イテレータが失敗します sampleList.remove(0); while(sampleListItr.hasNext()){ System.out.println(sampleListItr.next()); } ' イテレータを避けるようにしてください。 –

+0

イテレータを使用しないことでこの問題を回避できます。 Java 8は、どのコレクションに対しても反復処理を行うための 'foreach'メソッドを提供します。 –

関連する問題