ConcurrentModificationException は、ArrayList の走査 (反復処理) と変更が同時に行われるときに発生します。この記事では、この例外を処理するためのベスト プラクティスを検討し、代替アプローチの概要を説明します。
同時変更例外の回避
例外の発生を防ぐには、次の 2 つのオプションを使用できます。
イテレータの Remove メソッドの例:
ある長さの文字列を削除するシナリオを考えてみましょう。 ArrayList からの 5 より大きい値:
<code class="java">List<String> list = new ArrayList<>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
この例では、反復子の「remove」メソッドを使用して、反復処理中に元のリストを安全に変更します。
以上がArrayList を反復および変更するときに ConcurrentModificationException を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。