Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a new iterator object every time I traverse the list

Tags:

java

iterator

If I create an Iterator object on any List, do I have to create a new iterator object every time I traverse the list? Or do new items added or removed from the list automatically get accounted for by the previously created iterator?

like image 898
aps Avatar asked Feb 23 '23 08:02

aps


1 Answers

Iterator is a one-use utility. You generally need a new one each time you iterate through the list. However, that's not a bad thing; Iterators have very little state (for an ArrayList, it might be just an int to hold the current index).

If the backing list is modified in between iterator calls, you will get a ConcurrentModificationException from the iterator operation. Adding or removing items must be done using the Iterator itself.

like image 175
Mark Peters Avatar answered Feb 25 '23 21:02

Mark Peters