com.google.common.collect
Class AbstractSequentialIterator<T>
java.lang.Object
com.google.common.collect.UnmodifiableIterator<T>
com.google.common.collect.AbstractSequentialIterator<T>
- All Implemented Interfaces:
- Iterator<T>
@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;
}
};
- Since:
- 12.0 (in Guava as
AbstractLinkedIterator
since 8.0)
- Author:
- Chris Povirk
Constructor Summary |
protected |
AbstractSequentialIterator(T firstOrNull)
Creates a new iterator with the given first element, or, if firstOrNull is null, creates a new empty iterator. |
Method Summary |
protected abstract T |
computeNext(T previous)
Returns the element that follows previous , or returns null
if no elements remain. |
boolean |
hasNext()
|
T |
next()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractSequentialIterator
protected AbstractSequentialIterator(@Nullable
T firstOrNull)
- Creates a new iterator with the given first element, or, if
firstOrNull
is null, creates a new empty iterator.
computeNext
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()
.
hasNext
public final boolean hasNext()
next
public final T next()
Copyright © 2010-2012. All Rights Reserved.