ホームページ >Java >&#&チュートリアル >反復中に ArrayList から削除するときに ConcurrentModificationException を回避するにはどうすればよいですか?

反復中に ArrayList から削除するときに ConcurrentModificationException を回避するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 08:51:13466ブラウズ

How to Avoid ConcurrentModificationException When Removing from an ArrayList During Iteration?

反復中に ArrayList から要素を削除するときの「ConcurrentModificationException」の回避

次のような反復中に ArrayList から要素を削除しようとするとき例:

for (String str : myArrayList) {
    if (someCondition) {
        myArrayList.remove(str);
    }
}

に遭遇する可能性が高い「ConcurrentModificationException」。これは、ArrayList が反復中に変更され、フェイルファスト プロパティに違反するために発生します。

解決策: イテレーターの使用

この例外を回避するには、イテレーターとRemove() メソッドを呼び出します:

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
    String str = iter.next();

    if (someCondition)
        iter.remove();
}

Iterator を使用して、ArrayList の変更を行います。反復中に内部で処理され、例外がスローされないことが保証されます。

以上が反復中に ArrayList から削除するときに ConcurrentModificationException を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。