Class CursorableLinkedList.Cursor<E>
java.lang.Object
org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator<E>
org.apache.commons.collections4.list.CursorableLinkedList.Cursor<E>
- All Implemented Interfaces:
Iterator<E>
,ListIterator<E>
,OrderedIterator<E>
- Direct Known Subclasses:
CursorableLinkedList.SubCursor
- Enclosing class:
CursorableLinkedList<E>
An extended
ListIterator
that allows concurrent changes to
the underlying list.-
Field Summary
FieldsModifier and TypeFieldDescription(package private) boolean
Flag to indicate if the current element was removed by another object.(package private) boolean
Is the next index valid(package private) boolean
Is the cursor valid (not closed)Fields inherited from class org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator
current, expectedModCount, next, nextIndex, parent
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Cursor
(CursorableLinkedList<E> parent, int index) Constructs a new cursor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds an object to the list.protected void
Override superclass modCount check, and replace it with our valid flag.void
close()
Mark this cursor as no longer being needed.int
Gets the index of the next element to be returned.protected void
nodeChanged
(AbstractLinkedList.Node<E> node) Handle event from the list when a node has changed.protected void
nodeInserted
(AbstractLinkedList.Node<E> node) Handle event from the list when a node has been added.protected void
nodeRemoved
(AbstractLinkedList.Node<E> node) Handle event from the list when a node has been removed.void
remove()
Removes the item last returned by this iterator.Methods inherited from class org.apache.commons.collections4.list.AbstractLinkedList.LinkedListIterator
getLastNodeReturned, hasNext, hasPrevious, next, previous, previousIndex, set
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Field Details
-
valid
boolean validIs the cursor valid (not closed) -
nextIndexValid
boolean nextIndexValidIs the next index valid -
currentRemovedByAnother
boolean currentRemovedByAnotherFlag to indicate if the current element was removed by another object.
-
-
Constructor Details
-
Cursor
Constructs a new cursor.- Parameters:
parent
- the parent listindex
- the index to start from
-
-
Method Details
-
remove
public void remove()Removes the item last returned by this iterator.There may have been subsequent alterations to the list since you obtained this item, however you can still remove it. You can even remove it if the item is no longer in the main list. However, you can't call this method on the same iterator more than once without calling next() or previous().
- Specified by:
remove
in interfaceIterator<E>
- Specified by:
remove
in interfaceListIterator<E>
- Overrides:
remove
in classAbstractLinkedList.LinkedListIterator<E>
- Throws:
IllegalStateException
- if there is no item to remove
-
add
Adds an object to the list. The object added here will be the new 'previous' in the iterator.- Specified by:
add
in interfaceListIterator<E>
- Overrides:
add
in classAbstractLinkedList.LinkedListIterator<E>
- Parameters:
obj
- the object to add
-
nextIndex
public int nextIndex()Gets the index of the next element to be returned.- Specified by:
nextIndex
in interfaceListIterator<E>
- Overrides:
nextIndex
in classAbstractLinkedList.LinkedListIterator<E>
- Returns:
- the next index
-
nodeChanged
Handle event from the list when a node has changed.- Parameters:
node
- the node that changed
-
nodeRemoved
Handle event from the list when a node has been removed.- Parameters:
node
- the node that was removed
-
nodeInserted
Handle event from the list when a node has been added.- Parameters:
node
- the node that was added
-
checkModCount
protected void checkModCount()Override superclass modCount check, and replace it with our valid flag.- Overrides:
checkModCount
in classAbstractLinkedList.LinkedListIterator<E>
-
close
public void close()Mark this cursor as no longer being needed. Any resources associated with this cursor are immediately released. In previous versions of this class, it was mandatory to close all cursor objects to avoid memory leaks. It is no longer necessary to call this close method; an instance of this class can now be treated exactly like a normal iterator.
-