反復処理中に `ArrayList` から要素を削除するときに「ConcurrentModificationException」を回避するにはどうすればよいでしょうか? [重複] 質問する

反復処理中に `ArrayList` から要素を削除するときに「ConcurrentModificationException」を回避するにはどうすればよいでしょうか? [重複] 質問する

ArrayList次のように繰り返しながら、いくつかの要素を削除しようとしています。

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

もちろん、ConcurrentModificationExceptionを反復処理するときに同時にリストから項目を削除しようとすると が発生しますmyArrayList。この問題を解決する簡単な解決策はありますか?

ベストアンサー1

使用Iteratorそして電話するremove():

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

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

    if (someCondition)
        iter.remove();
}

おすすめ記事