Class ReverseListIterator<E>
java.lang.Object
org.apache.commons.collections4.iterators.ReverseListIterator<E>
- Type Parameters:
E
- the type of elements returned by this iterator.
- All Implemented Interfaces:
Iterator<E>
,ListIterator<E>
,OrderedIterator<E>
,ResettableIterator<E>
,ResettableListIterator<E>
Iterates backwards through a List, starting with the last element
and continuing to the first. This is useful for looping around
a list in reverse order without needing to actually reverse the list.
The first call to next()
will return the last element
from the list, and so on. The hasNext()
method works
in concert with the next()
method as expected.
However, the nextIndex()
method returns the correct
index in the list, thus it starts high and reduces as the iteration
continues. The previous methods work similarly.
- Since:
- 3.2
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a new element to the list between the next and previous elements.boolean
hasNext()
Checks whether there is another element.boolean
Checks whether there is a previous element.next()
Gets the next element.int
Gets the index of the next element.previous()
Gets the previous element.int
Gets the index of the previous element.void
remove()
Removes the last returned element.void
reset()
Resets the iterator back to the start (which is the end of the list as this is a reversed iterator)void
Replaces the last returned element.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
-
Constructor Details
-
ReverseListIterator
Constructor that wraps a list.- Parameters:
list
- the list to create a reversed iterator for- Throws:
NullPointerException
- if the list is null
-
-
Method Details
-
add
Adds a new element to the list between the next and previous elements.- Specified by:
add
in interfaceListIterator<E>
- Parameters:
obj
- the object to add- Throws:
UnsupportedOperationException
- if the list is unmodifiableIllegalStateException
- if the iterator is not in a valid state for set
-
hasNext
Checks whether there is another element. -
hasPrevious
Checks whether there is a previous element.- Specified by:
hasPrevious
in interfaceListIterator<E>
- Specified by:
hasPrevious
in interfaceOrderedIterator<E>
- Returns:
- true if there is a previous element
-
next
Gets the next element. The next element is the previous in the list. -
nextIndex
Gets the index of the next element.- Specified by:
nextIndex
in interfaceListIterator<E>
- Returns:
- the index of the next element in the iterator
-
previous
Gets the previous element. The next element is the previous in the list.- Specified by:
previous
in interfaceListIterator<E>
- Specified by:
previous
in interfaceOrderedIterator<E>
- Returns:
- the previous element in the iterator
-
previousIndex
Gets the index of the previous element.- Specified by:
previousIndex
in interfaceListIterator<E>
- Returns:
- the index of the previous element in the iterator
-
remove
Removes the last returned element.- Specified by:
remove
in interfaceIterator<E>
- Specified by:
remove
in interfaceListIterator<E>
- Throws:
UnsupportedOperationException
- if the list is unmodifiableIllegalStateException
- if there is no element to remove
-
reset
Resets the iterator back to the start (which is the end of the list as this is a reversed iterator)- Specified by:
reset
in interfaceResettableIterator<E>
-
set
Replaces the last returned element.- Specified by:
set
in interfaceListIterator<E>
- Parameters:
obj
- the object to set- Throws:
UnsupportedOperationException
- if the list is unmodifiableIllegalStateException
- if the iterator is not in a valid state for set
-