ConcatIterator

class ConcatIterator<T>(val it0: Iterator<Iterator<T>>, val joiner: () -> Iterator<T>) : Iterator<T>

Basically a fast, efficient .flatten or mkString for nested iterators

For some reason, the funault way of concatenation e.g.

val middle = first ++ lastChildIter ++ sep ++ remaining

Was throwing weird NullPointerExceptions I couldn't figure out =(

Also, ++ didn't seem to be sufficiently lazy, so it was forcing things earlier than it really needed to. It isn't documented anywhere how lazy it's meant to be, whereas ConcatIterator here is obviously lazy and won't even evaluate each iterator until you ask it to

Constructors

Link copied to clipboard
constructor(it0: Iterator<Iterator<T>>, joiner: () -> Iterator<T>)

Properties

Link copied to clipboard
Link copied to clipboard
val joiner: () -> Iterator<T>

Functions

Link copied to clipboard
open fun forEachRemaining(p0: Consumer<in T>)
Link copied to clipboard
open operator override fun hasNext(): Boolean
Link copied to clipboard
open operator override fun next(): T