ホームページ > Java > &#&チュートリアル > Java での同時反復中に ArrayList から要素を安全に削除するにはどうすればよいですか?

Java での同時反復中に ArrayList から要素を安全に削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-29 10:14:03
オリジナル
905 人が閲覧しました

How to Safely Remove Elements from an ArrayList During Concurrent Iteration in Java?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート