iterator
Creates a new mutable iterator that visits this list in index order.
MutableIterator.remove removes the most recently returned element once and preserves the iterator's traversal position. External insertion, removal or any clear invalidates later Iterator.next and MutableIterator.remove calls; set does not. Iterator.hasNext only checks whether an element remains and does not validate structural changes.
This iterator throws IllegalArgumentException from next after exhaustion or invalidation, or from remove after invalidation, before next, or twice after the same successful next.
Return
a fresh iterator positioned before the first element.