ArrayList の要素を走査して削除するときに ConcurrentModificationException を克服する方法
要素を同時に削除しながら ArrayList を反復処理すると、悪名高い Java がトリガーされる可能性があります。 util.ConcurrentModificationException。この問題に対処するには、考慮すべきベスト プラクティスがいくつかあります。
1 つの方法は、削除する要素の別のリストを作成することです。ループの反復中に、これらの要素をセカンダリ リストに追加し、反復が終了したら、originalList.removeAll(valuesToRemove) メソッドを呼び出します。
あるいは、反復子で直接 Remove() メソッドを利用することもできます。この手法では、拡張された for ループを回避する必要があることに注意してください。たとえば、長さが 5 を超える文字列をリストから削除するには:
List<String> list = new ArrayList<String>(); for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }
以上がArrayList から要素を削除するときに ConcurrentModificationException を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。