イテレーターを使用した安全な反復
使用して反復処理中にコレクションを変更するforeach ループはエラーを引き起こす可能性があります。反復中に要素を安全に削除するには、明示的な Iterator を使用します。
List<String> names = ... Iterator<String> i = names.iterator(); while (i.hasNext()) { String s = i.next(); if (...) { i.remove(); } }
Concurrent Modification Exception
Iterator を使用しない場合、次の場合、コードは ConcurrentModificationException で失敗します。コレクションは反復中に変更されます。明示的なイテレータにより、変更が追跡され、基礎となるコレクションに反映されることが保証されます。
ネストされた削除に関する注意
提供された例では、内部の while ループは削除を続けます。存在しなくなるまで同じ要素を保持します。技術的には合法ですが、特別な理由がない限り、一般的には不適切な行為とみなされます。
以上が反復中に Java リストから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。