Class PushbackIterator<E>
java.lang.Object
org.apache.commons.collections4.iterators.PushbackIterator<E>
- All Implemented Interfaces:
Iterator<E>
Decorates an iterator to support pushback of elements.
The decorator stores the pushed back elements in a LIFO manner: the last element
that has been pushed back, will be returned as the next element in a call to next()
.
The decorator does not support the removal operation. Any call to remove()
will
result in an UnsupportedOperationException
.
- Since:
- 4.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
hasNext()
next()
void
Push back the given element to the iterator.static <E> PushbackIterator
<E> pushbackIterator
(Iterator<? extends E> iterator) Decorates the specified iterator to support one-element lookahead.void
remove()
This iterator will always throw anUnsupportedOperationException
.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
-
iterator
The iterator being decorated. -
items
The LIFO queue containing the pushed back items.
-
-
Constructor Details
-
PushbackIterator
Constructor.- Parameters:
iterator
- the iterator to decorate
-
-
Method Details
-
pushbackIterator
Decorates the specified iterator to support one-element lookahead.If the iterator is already a
PushbackIterator
it is returned directly.- Type Parameters:
E
- the element type- Parameters:
iterator
- the iterator to decorate- Returns:
- a new peeking iterator
- Throws:
NullPointerException
- if the iterator is null
-
pushback
Push back the given element to the iterator.Calling
next()
immediately afterwards will return exactly this element.- Parameters:
item
- the element to push back to the iterator
-
hasNext
public boolean hasNext() -
next
-
remove
public void remove()This iterator will always throw anUnsupportedOperationException
.- Specified by:
remove
in interfaceIterator<E>
- Throws:
UnsupportedOperationException
- always
-