2011-08-05 3 views
4

リストにIteratorオブジェクトを作成すると、リストをトラバースするたびに新しいイテレータオブジェクトを作成する必要がありますか?または、リストに追加または削除された新しいアイテムは、以前に作成されたイテレータによって自動的に考慮されますか?リストをトラバースするたびに新しいイテレータオブジェクトを作成する

+0

あなたはそれを試してみませんか? –

答えて

8

Iteratorは、1回限りのユーティリティです。リストを反復するたびに、新しいものが必要になります。しかし、それは悪いことではありません。 Iteratorは状態がほとんどありません(ArrayListの場合、現在のインデックスを保持するのは単なるintかもしれません)。

イテレータコールの間でバッキングリストが変更された場合、イテレータ操作からConcurrentModificationExceptionが返されます。アイテムの追加または削除は、Iteratorを使用して行う必要があります。

関連する問題