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