Class 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)
    • Constructor Detail

      • AbstractSequentialIterator

        protected AbstractSequentialIterator(T firstOrNull)
        Creates a new iterator with the given first element, or, if firstOrNull is null, creates a new empty iterator.
    • Method Detail

      • 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()