@GwtCompatible public abstract class AbstractSequentialIterator<T> extends UnmodifiableIterator<T>
This class provides a skeletal implementation of the Iterator
interface for sequences whose next element can always be derived from the previous element. Null elements are not supported, nor is the UnmodifiableIterator.remove()
method.
Example:
Iterator<Integer> powersOfTwo =
new AbstractSequentialIterator<Integer>(1) {
protected Integer computeNext(Integer previous) {
return (previous == 1 << 30) ? null : previous * 2;
} };
AbstractLinkedIterator
since 8.0)Modifier | Constructor and Description |
---|---|
protected |
AbstractSequentialIterator(T firstOrNull)
Creates a new iterator with the given first element, or, if
firstOrNull is null, creates a new empty iterator. |
Modifier and Type | Method and Description |
---|---|
protected abstract T |
computeNext(T previous)
Returns the element that follows
previous , or returns null if no elements remain. |
boolean |
hasNext() |
T |
next() |
remove
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining
protected abstract T computeNext(T previous)
Returns the element that follows previous
, or returns null
if no elements remain. This method is invoked during each call to next()
in order to compute the result of a future call to next()
.
public final boolean hasNext()
public final T next()