Returns a {@link ListIterator} for iterating through theelements of this list. Unlike {@link #iterator}, a cursor is not bothered by concurrent modifications to the underlying list.
Specifically, when elements are added to the list before or after the cursor, the cursor simply picks them up automatically. When the "current" (i.e., last returned by {@link ListIterator#next}or {@link ListIterator#previous}) element of the list is removed, the cursor automatically adjusts to the change (invalidating the last returned value--i.e., it cannot be removed).
Note that the returned {@link ListIterator} does not support the{@link ListIterator#nextIndex} and {@link ListIterator#previousIndex}methods (they throw {@link UnsupportedOperationException} when invoked.
Clients must close the cursor when they are done using it. The returned {@link ListIterator} will be an instance of{@link CursorableLinkedList.Cursor}. To close the cursor, cast the {@link ListIterator} to {@link CursorableLinkedList.Cursor}and invoke the {@link CursorableLinkedList.Cursor#close} method.
@see #cursor(int)
@see #listIterator
@see CursorableLinkedList.Cursor