Class StreamIterator<E>

  • Type Parameters:
    E - The Stream and Iterator type.
    All Implemented Interfaces:
    java.lang.AutoCloseable, java.util.Iterator<E>

    public final class StreamIterator<E>
    extends java.lang.Object
    implements java.util.Iterator<E>, java.lang.AutoCloseable
    Wraps and presents a Stream as a AutoCloseable Iterator resource that automatically closes itself when reaching the end of stream.

    Warning

    In order to close the stream, the call site MUST either close the stream it allocated OR call this iterator until the end.

    Since:
    2.15.0
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes the underlying stream.
      boolean hasNext()  
      static <T> StreamIterator<T> iterator​(java.util.stream.Stream<T> stream)
      Wraps and presents a stream as a closable resource that automatically closes itself when reaching the end of stream.
      E next()  
      • Methods inherited from class java.lang.Object

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

        forEachRemaining, remove
    • Method Detail

      • iterator

        public static <T> StreamIterator<T> iterator​(java.util.stream.Stream<T> stream)
        Wraps and presents a stream as a closable resource that automatically closes itself when reaching the end of stream.

        Warning

        In order to close the stream, the call site MUST either close the stream it allocated OR call this iterator until the end.

        Type Parameters:
        T - The stream and iterator type.
        Parameters:
        stream - The stream iterate.
        Returns:
        A new iterator.
      • close

        public void close()
        Closes the underlying stream.
        Specified by:
        close in interface java.lang.AutoCloseable
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<E>
      • next

        public E next()
        Specified by:
        next in interface java.util.Iterator<E>