ArrayList での同時反復および削除中の ConcurrentModificationException の処理
Java では、コレクションを同時に変更しながら反復すると、Java が発生する可能性があります。 util.ConcurrentModificationException。この例外は、反復中に追加操作または削除操作によりコレクションの構造が変更された場合に発生します。
ArrayList を使用するときにこの問題を回避するには、次のベスト プラクティスを考慮してください。
削除する要素のリストを作成する:
削除する必要がある要素を追跡するために別のリストを維持します。ループ内では、要素を元のリストから直接削除するのではなく、このリストに要素を追加するだけです。ループが終了したら、ArrayList のremoveAll() メソッドを使用して、リストからすべての要素を削除します。
Iterator の Remove メソッドを使用します:
Employイテレータ自体で使用できるremove()メソッド。これには、リストを反復処理するための Java 8 拡張 for ループ構文を放棄する必要があることに注意してください。
たとえば、ArrayList から 5 を超える長さの文字列を削除する場合:
<code class="java">List<String> list = new ArrayList<String>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
以上がJava での同時反復中に ArrayList から要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。