class ConcatIterator[T] extends Iterator[T]
Basically a fast, efficient .flatten
or mkString
for nested iterators
For some reason, the default 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
- Alphabetic
- By Inheritance
- ConcatIterator
- Iterator
- TraversableOnce
- GenTraversableOnce
- AnyRef
- Any
- by MonadOps
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- by alternateImplicit
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ConcatIterator(it0: Iterator[Iterator[T]], joiner: () ⇒ Iterator[T])
Type Members
-
class
GroupedIterator[B >: A] extends AbstractIterator[Seq[B]] with Iterator[Seq[B]]
- Definition Classes
- Iterator
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to any2stringadd[ConcatIterator[T]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
++[B >: T](that: ⇒ GenTraversableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
-
def
->[B](y: B): (ConcatIterator[T], B)
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to ArrowAssoc[ConcatIterator[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addString(b: StringBuilder): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, sep: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
aggregate[B](z: ⇒ B)(seqop: (B, T) ⇒ B, combop: (B, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
buffered: BufferedIterator[T]
- Definition Classes
- Iterator
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
collect[B](pf: PartialFunction[T, B]): Iterator[B]
- Definition Classes
- Iterator
- Annotations
- @migration
- Migration
(Changed in version 2.8.0)
collect
has changed. The previous behavior can be reproduced withtoSeq
.
-
def
collectFirst[B](pf: PartialFunction[T, B]): Option[B]
- Definition Classes
- TraversableOnce
-
def
contains(elem: Any): Boolean
- Definition Classes
- Iterator
-
def
copyToArray[B >: T](xs: Array[B], start: Int, len: Int): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: T](xs: Array[B]): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: T](xs: Array[B], start: Int): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToBuffer[B >: T](dest: Buffer[B]): Unit
- Definition Classes
- TraversableOnce
-
def
corresponds[B](that: GenTraversableOnce[B])(p: (T, B) ⇒ Boolean): Boolean
- Definition Classes
- Iterator
-
def
count(p: (T) ⇒ Boolean): Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
- var count: Int
-
def
drop(n: Int): Iterator[T]
- Definition Classes
- Iterator
-
def
dropWhile(p: (T) ⇒ Boolean): Iterator[T]
- Definition Classes
- Iterator
-
def
duplicate: (Iterator[T], Iterator[T])
- Definition Classes
- Iterator
-
def
ensuring(cond: (ConcatIterator[T]) ⇒ Boolean, msg: ⇒ Any): ConcatIterator[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to Ensuring[ConcatIterator[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (ConcatIterator[T]) ⇒ Boolean): ConcatIterator[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to Ensuring[ConcatIterator[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): ConcatIterator[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to Ensuring[ConcatIterator[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): ConcatIterator[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to Ensuring[ConcatIterator[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists(p: (T) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
filter(p: (T) ⇒ Boolean): Iterator[T]
- Definition Classes
- Iterator
-
def
filterNot(p: (T) ⇒ Boolean): Iterator[T]
- Definition Classes
- Iterator
-
def
find(p: (T) ⇒ Boolean): Option[T]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
flatMap[B](f: (T) ⇒ GenTraversableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
-
def
fold[A1 >: T](z: A1)(op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldLeft[B](z: B)(op: (B, T) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldRight[B](z: B)(op: (T, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
forall(p: (T) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
foreach[U](f: (T) ⇒ U): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
grouped[B >: T](size: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
hasDefiniteSize: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
hasNext: Boolean
- Definition Classes
- ConcatIterator → Iterator
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- var head: Iterator[T]
-
def
indexOf[B >: T](elem: B, from: Int): Int
- Definition Classes
- Iterator
-
def
indexOf[B >: T](elem: B): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (T) ⇒ Boolean, from: Int): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (T) ⇒ Boolean): Int
- Definition Classes
- Iterator
-
def
isEmpty: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraversableAgain: Boolean
- Definition Classes
- Iterator → GenTraversableOnce
-
def
length: Int
- Definition Classes
- Iterator
-
def
map[B](f: (T) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
max[B >: T](implicit cmp: Ordering[B]): T
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
maxBy[B](f: (T) ⇒ B)(implicit cmp: Ordering[B]): T
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
min[B >: T](implicit cmp: Ordering[B]): T
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
minBy[B](f: (T) ⇒ B)(implicit cmp: Ordering[B]): T
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString: String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(sep: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(start: String, sep: String, end: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
next(): T
- Definition Classes
- ConcatIterator → Iterator
-
def
nonEmpty: Boolean
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
padTo[A1 >: T](len: Int, elem: A1): Iterator[A1]
- Definition Classes
- Iterator
-
def
partition(p: (T) ⇒ Boolean): (Iterator[T], Iterator[T])
- Definition Classes
- Iterator
-
def
patch[B >: T](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]
- Definition Classes
- Iterator
-
def
product[B >: T](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduce[A1 >: T](op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceLeft[B >: T](op: (B, T) ⇒ B): B
- Definition Classes
- TraversableOnce
-
def
reduceLeftOption[B >: T](op: (B, T) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceOption[A1 >: T](op: (A1, A1) ⇒ A1): Option[A1]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRight[B >: T](op: (T, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRightOption[B >: T](op: (T, B) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reversed: List[T]
- Attributes
- protected[this]
- Definition Classes
- TraversableOnce
-
def
sameElements(that: Iterator[_]): Boolean
- Definition Classes
- Iterator
-
def
scanLeft[B](z: B)(op: (B, T) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
scanRight[B](z: B)(op: (T, B) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
seq: Iterator[T]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
size: Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
sizeHintIfCheap: Int
- Attributes
- protected[collection]
- Definition Classes
- GenTraversableOnce
-
def
slice(from: Int, until: Int): Iterator[T]
- Definition Classes
- Iterator
-
def
sliceIterator(from: Int, until: Int): Iterator[T]
- Attributes
- protected
- Definition Classes
- Iterator
-
def
sliding[B >: T](size: Int, step: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
span(p: (T) ⇒ Boolean): (Iterator[T], Iterator[T])
- Definition Classes
- Iterator
-
def
sum[B >: T](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(n: Int): Iterator[T]
- Definition Classes
- Iterator
-
def
takeWhile(p: (T) ⇒ Boolean): Iterator[T]
- Definition Classes
- Iterator
-
def
to[Col[_]](implicit cbf: CanBuildFrom[Nothing, T, Col[T]]): Col[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toArray[B >: T](implicit arg0: ClassTag[B]): Array[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toBuffer[B >: T]: Buffer[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIndexedSeq: IndexedSeq[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterable: Iterable[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterator: Iterator[T]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toList: List[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toMap[T, U](implicit ev: <:<[T, (T, U)]): Map[T, U]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSeq: Seq[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSet[B >: T]: Set[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toStream: Stream[T]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toString(): String
- Definition Classes
- Iterator → AnyRef → Any
-
def
toTraversable: Traversable[T]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
toVector: Vector[T]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withFilter(p: (T) ⇒ Boolean): Iterator[T]
- Definition Classes
- Iterator
-
def
zip[B](that: Iterator[B]): Iterator[(T, B)]
- Definition Classes
- Iterator
-
def
zipAll[B, A1 >: T, B1 >: B](that: Iterator[B], thisElem: A1, thatElem: B1): Iterator[(A1, B1)]
- Definition Classes
- Iterator
-
def
zipWithIndex: Iterator[(T, Int)]
- Definition Classes
- Iterator
-
def
→[B](y: B): (ConcatIterator[T], B)
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to ArrowAssoc[ConcatIterator[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Shadowed Implicit Value Members
-
def
filter(p: (T) ⇒ Boolean): TraversableOnce[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to MonadOps[T] performed by method MonadOps in scala.collection.TraversableOnce.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(concatIterator: MonadOps[T]).filter(p)
- Definition Classes
- MonadOps
-
def
flatMap[B](f: (T) ⇒ GenTraversableOnce[B]): TraversableOnce[B]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to MonadOps[T] performed by method MonadOps in scala.collection.TraversableOnce.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(concatIterator: MonadOps[T]).flatMap(f)
- Definition Classes
- MonadOps
-
def
map[B](f: (T) ⇒ B): TraversableOnce[B]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to MonadOps[T] performed by method MonadOps in scala.collection.TraversableOnce.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(concatIterator: MonadOps[T]).map(f)
- Definition Classes
- MonadOps
-
def
withFilter(p: (T) ⇒ Boolean): Iterator[T]
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to MonadOps[T] performed by method MonadOps in scala.collection.TraversableOnce.
- Shadowing
- This implicitly inherited member is shadowed by one or more members in this class.
To access this member you can use a type ascription:(concatIterator: MonadOps[T]).withFilter(p)
- Definition Classes
- MonadOps
Deprecated Value Members
-
def
/:[B](z: B)(op: (B, T) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldLeft instead of /:
-
def
:\[B](z: B)(op: (T, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldRight instead of :\
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ConcatIterator[T] to StringFormat[ConcatIterator[T]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.