ホームページ >Java >&#&チュートリアル >Java で反復中にコレクションから要素を安全に削除するにはどうすればよいですか?
反復中にコレクションから要素を削除する
コレクションを操作する場合、反復中に要素を変更または削除する必要があります。ただし、反復中にコレクションを変更すると、ConcurrentModificationException が発生する可能性があります。これを回避するには、いくつかの方法があります。
コレクションのコピーを反復する
1 つの方法は、反復する前にコレクションのコピーを作成することです。これにより、元のコレクションに影響を与えることなくコピーを変更できます。以下に例を示します。
List<Foo> fooListCopy = new ArrayList<>(fooList); for (Foo foo : fooListCopy) { // Modify actual fooList }
実際のコレクションのイテレータの使用
別のアプローチは、実際のコレクションのイテレータを使用することです。このアプローチにより、反復中にコレクションを変更できます。以下に例を示します。
Iterator<Foo> itr = fooList.iterator(); while (itr.hasNext()) { // Modify actual fooList using itr.remove() }
アプローチを選択する際の考慮事項
これらのアプローチのどちらを選択するかは、いくつかの要因によって決まります。
要素を削除するための追加テクニック
これらのアプローチに加えて、Java 8 では、反復中に要素を削除するための他の手法がいくつか提供されています。以下を含みます:
以上がJava で反復中にコレクションから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。