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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With