@GwtCompatible public abstract class AbstractSequentialIterator<T> extends UnmodifiableIterator<T>
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()
|
removeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEachRemainingprotected AbstractSequentialIterator(T firstOrNull)
firstOrNull is null, creates a new empty iterator.
protected abstract T computeNext(T previous)
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()