4
リストにIteratorオブジェクトを作成すると、リストをトラバースするたびに新しいイテレータオブジェクトを作成する必要がありますか?または、リストに追加または削除された新しいアイテムは、以前に作成されたイテレータによって自動的に考慮されますか?リストをトラバースするたびに新しいイテレータオブジェクトを作成する
リストにIteratorオブジェクトを作成すると、リストをトラバースするたびに新しいイテレータオブジェクトを作成する必要がありますか?または、リストに追加または削除された新しいアイテムは、以前に作成されたイテレータによって自動的に考慮されますか?リストをトラバースするたびに新しいイテレータオブジェクトを作成する
Iterator
は、1回限りのユーティリティです。リストを反復するたびに、新しいものが必要になります。しかし、それは悪いことではありません。 Iterator
は状態がほとんどありません(ArrayList
の場合、現在のインデックスを保持するのは単なるintかもしれません)。
イテレータコールの間でバッキングリストが変更された場合、イテレータ操作からConcurrentModificationException
が返されます。アイテムの追加または削除は、Iterator
を使用して行う必要があります。
あなたはそれを試してみませんか? –