Class SkippingIterator<E>

  • All Implemented Interfaces:
    java.util.Iterator<E>

    public class SkippingIterator<E>
    extends AbstractIteratorDecorator<E>
    Decorates another iterator to skip the first N elements.

    In case an offset parameter other than 0 is provided, the decorated iterator is immediately advanced to this position, skipping all elements before that position.

    Since:
    4.1
    • Constructor Summary

      Constructors 
      Constructor Description
      SkippingIterator​(java.util.Iterator<E> iterator, long offset)
      Decorates the specified iterator to skip all elements until the iterator reaches the position at offset.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      E next()
      void remove()
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Constructor Detail

      • SkippingIterator

        public SkippingIterator​(java.util.Iterator<E> iterator,
                                long offset)
        Decorates the specified iterator to skip all elements until the iterator reaches the position at offset.

        The iterator is immediately advanced until it reaches the position at offset, incurring O(n) time.

        Parameters:
        iterator - the iterator to be decorated
        offset - the index of the first element of the decorated iterator to return
        Throws:
        java.lang.NullPointerException - if iterator is null
        java.lang.IllegalArgumentException - if offset is negative
    • Method Detail

      • remove

        public void remove()

        In case an offset other than 0 was specified, the underlying iterator will be advanced to this position upon creation. A call to remove() will still result in an IllegalStateException if no explicit call to next() has been made prior to calling remove().

        Specified by:
        remove in interface java.util.Iterator<E>
        Overrides:
        remove in class AbstractUntypedIteratorDecorator<E,​E>