Splitter

trait Splitter[+T] extends Iterator[T]

A splitter (or a split iterator) can be split into more splitters that traverse over disjoint subsets of elements.

Type Params
T

type of the elements this splitter traverses

Companion
object
trait Iterator[T]
trait IterableOnceOps[T, [A] =>> Iterator[A], Iterator[T]]
trait IterableOnce[T]
class Object
trait Matchable
class Any

Type members

Inherited classlikes

class GroupedIterator[B >: A]
Inherited from
Iterator

Value members

Abstract methods

def split: Seq[Splitter[T]]

Splits the iterator into a sequence of disjunct views.

Splits the iterator into a sequence of disjunct views.

Returns a sequence of split iterators, each iterating over some subset of the elements in the collection. These subsets are disjoint and should be approximately equal in size. These subsets are not empty, unless the iterator is empty in which case this method returns a sequence with a single empty iterator. If the splitter has more than two elements, this method will return two or more splitters.

Implementors are advised to keep this partition relatively small - two splitters are already enough when partitioning the collection, although there may be a few more.

'''Note:''' this method actually invalidates the current splitter.

Returns

a sequence of disjunct iterators of the collection

Inherited methods

@inline
final def ++[B >: T](xs: => IterableOnce[B]): Iterator[B]
Inherited from
Iterator
@inline
final def addString(b: StringBuilder): StringBuilder
Inherited from
IterableOnceOps
@inline
final def addString(b: StringBuilder, sep: String): StringBuilder
Inherited from
IterableOnceOps
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
Inherited from
IterableOnceOps
def buffered: BufferedIterator[T]
Inherited from
Iterator
def collect[B](pf: PartialFunction[T, B]): Iterator[B]
Inherited from
Iterator
def collectFirst[B](pf: PartialFunction[T, B]): Option[B]
Inherited from
IterableOnceOps
def concat[B >: T](xs: => IterableOnce[B]): Iterator[B]
Inherited from
Iterator
def contains(elem: Any): Boolean
Inherited from
Iterator
def copyToArray[B >: T](xs: Array[B], start: Int, len: Int): Int
Inherited from
IterableOnceOps
@deprecatedOverriding(message = "This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: T](xs: Array[B], start: Int): Int
Inherited from
IterableOnceOps
@deprecatedOverriding(message = "This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: T](xs: Array[B]): Int
Inherited from
IterableOnceOps
def corresponds[B](that: IterableOnce[B])(p: (T, B) => Boolean): Boolean
Inherited from
IterableOnceOps
def count(p: T => Boolean): Int
Inherited from
IterableOnceOps
def distinct: Iterator[T]
Inherited from
Iterator
def distinctBy[B](f: T => B): Iterator[T]
Inherited from
Iterator
def drop(n: Int): Iterator[T]
Inherited from
Iterator
def dropWhile(p: T => Boolean): Iterator[T]
Inherited from
Iterator
def duplicate: (Iterator[T], Iterator[T])
Inherited from
Iterator
def exists(p: T => Boolean): Boolean
Inherited from
IterableOnceOps
def filter(p: T => Boolean): Iterator[T]
Inherited from
Iterator
def filterNot(p: T => Boolean): Iterator[T]
Inherited from
Iterator
def find(p: T => Boolean): Option[T]
Inherited from
IterableOnceOps
def flatMap[B](f: T => IterableOnce[B]): Iterator[B]
Inherited from
Iterator
def flatten[B](implicit ev: T => IterableOnce[B]): Iterator[B]
Inherited from
Iterator
def fold[A1 >: T](z: A1)(op: (A1, A1) => A1): A1
Inherited from
IterableOnceOps
def foldLeft[B](z: B)(op: (B, T) => B): B
Inherited from
IterableOnceOps
def foldRight[B](z: B)(op: (T, B) => B): B
Inherited from
IterableOnceOps
def forall(p: T => Boolean): Boolean
Inherited from
IterableOnceOps
def foreach[U](f: T => U): Unit
Inherited from
IterableOnceOps
def grouped[B >: T](size: Int): GroupedIterator[B]
Inherited from
Iterator
def hasNext: Boolean
Inherited from
Iterator
def indexOf[B >: T](elem: B, from: Int): Int
Inherited from
Iterator
def indexOf[B >: T](elem: B): Int
Inherited from
Iterator
def indexWhere(p: T => Boolean, from: Int): Int
Inherited from
Iterator
@deprecatedOverriding(message = "isEmpty is defined as !hasNext; override hasNext instead", since = "2.13.0")
override def isEmpty: Boolean
Definition Classes
Iterator -> IterableOnceOps
Inherited from
Iterator
def isTraversableAgain: Boolean
Inherited from
IterableOnceOps
@inline
final def iterator: Iterator[T]
Inherited from
Iterator
def knownSize: Int
Inherited from
IterableOnce
@inline
final def length: Int
Inherited from
Iterator
def map[B](f: T => B): Iterator[B]
Inherited from
Iterator
def max[B >: T](implicit ord: Ordering[B]): T
Inherited from
IterableOnceOps
def maxBy[B](f: T => B)(implicit cmp: Ordering[B]): T
Inherited from
IterableOnceOps
def maxByOption[B](f: T => B)(implicit cmp: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def maxOption[B >: T](implicit ord: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def min[B >: T](implicit ord: Ordering[B]): T
Inherited from
IterableOnceOps
def minBy[B](f: T => B)(implicit cmp: Ordering[B]): T
Inherited from
IterableOnceOps
def minByOption[B](f: T => B)(implicit cmp: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
def minOption[B >: T](implicit ord: Ordering[B]): Option[T]
Inherited from
IterableOnceOps
@inline
final def mkString: String
Inherited from
IterableOnceOps
@inline
final def mkString(sep: String): String
Inherited from
IterableOnceOps
final def mkString(start: String, sep: String, end: String): String
Inherited from
IterableOnceOps
@throws(scala.this.throws.$lessinit$greater$default$1[scala.NoSuchElementException])
def next(): T
Inherited from
Iterator
def nextOption(): Option[T]
Inherited from
Iterator
@deprecatedOverriding(message = "nonEmpty is defined as !isEmpty; override isEmpty instead", since = "2.13.0")
def nonEmpty: Boolean
Inherited from
IterableOnceOps
def padTo[B >: T](len: Int, elem: B): Iterator[B]
Inherited from
Iterator
def partition(p: T => Boolean): (Iterator[T], Iterator[T])
Inherited from
Iterator
def patch[B >: T](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]
Inherited from
Iterator
def product[B >: T](implicit num: Numeric[B]): B
Inherited from
IterableOnceOps
def reduce[B >: T](op: (B, B) => B): B
Inherited from
IterableOnceOps
def reduceLeft[B >: T](op: (B, T) => B): B
Inherited from
IterableOnceOps
def reduceLeftOption[B >: T](op: (B, T) => B): Option[B]
Inherited from
IterableOnceOps
def reduceOption[B >: T](op: (B, B) => B): Option[B]
Inherited from
IterableOnceOps
def reduceRight[B >: T](op: (T, B) => B): B
Inherited from
IterableOnceOps
def reduceRightOption[B >: T](op: (T, B) => B): Option[B]
Inherited from
IterableOnceOps
protected def reversed: Iterable[T]
Inherited from
IterableOnceOps
def sameElements[B >: T](that: IterableOnce[B]): Boolean
Inherited from
Iterator
def scanLeft[B](z: B)(op: (B, T) => B): Iterator[B]
Inherited from
Iterator
def size: Int
Inherited from
IterableOnceOps
def slice(from: Int, until: Int): Iterator[T]
Inherited from
Iterator
def sliding[B >: T](size: Int, step: Int): GroupedIterator[B]
Inherited from
Iterator
def span(p: T => Boolean): (Iterator[T], Iterator[T])
Inherited from
Iterator
def splitAt(n: Int): (Iterator[T], Iterator[T])
Inherited from
IterableOnceOps
def stepper[S <: Stepper[_]](implicit shape: StepperShape[T, S]): S
Inherited from
IterableOnce
def sum[B >: T](implicit num: Numeric[B]): B
Inherited from
IterableOnceOps
def take(n: Int): Iterator[T]
Inherited from
Iterator
def takeWhile(p: T => Boolean): Iterator[T]
Inherited from
Iterator
override def tapEach[U](f: T => U): Iterator[T]
Definition Classes
Iterator -> IterableOnceOps
Inherited from
Iterator
def to[C1](factory: Factory[T, C1]): C1
Inherited from
IterableOnceOps
def toArray[B >: T](implicit ClassTag[B]): Array[B]
Inherited from
IterableOnceOps
@inline
final def toBuffer[B >: T]: Buffer[B]
Inherited from
IterableOnceOps
def toIndexedSeq: IndexedSeq[T]
Inherited from
IterableOnceOps
def toList: List[T]
Inherited from
IterableOnceOps
def toMap[K, V](implicit ev: T <:< (K, V)): Map[K, V]
Inherited from
IterableOnceOps
def toSeq: Seq[T]
Inherited from
IterableOnceOps
def toSet[B >: T]: Set[B]
Inherited from
IterableOnceOps
override def toString(): String
Definition Classes
Iterator -> Any
Inherited from
Iterator
def toVector: Vector[T]
Inherited from
IterableOnceOps
def withFilter(p: T => Boolean): Iterator[T]
Inherited from
Iterator
def zip[B](that: IterableOnce[B]): Iterator[(T, B)]
Inherited from
Iterator
def zipAll[A1 >: T, B](that: IterableOnce[B], thisElem: A1, thatElem: B): Iterator[(A1, B)]
Inherited from
Iterator
def zipWithIndex: Iterator[(T, Int)]
Inherited from
Iterator

Deprecated and Inherited methods

@inline @deprecated(message = "Use foldLeft instead of /:", since = "2.13.0")
final def /:[B](z: B)(op: (B, T) => B): B
Deprecated
[Since version 2.13.0] Use foldLeft instead of /:
Inherited from
IterableOnceOps
@inline @deprecated(message = "Use foldRight instead of :\\", since = "2.13.0")
final def :\[B](z: B)(op: (T, B) => B): B
Deprecated
[Since version 2.13.0] Use foldRight instead of :\\
Inherited from
IterableOnceOps
@deprecated(message = "`aggregate` is not relevant for sequential collections. Use `foldLeft(z)(seqop)` instead.", since = "2.13.0")
def aggregate[B](z: => B)(seqop: (B, T) => B, combop: (B, B) => B): B
Deprecated
[Since version 2.13.0] `aggregate` is not relevant for sequential collections. Use `foldLeft(z)(seqop)` instead.
Inherited from
IterableOnceOps
@inline @deprecated(message = "Use `dest ++= coll` instead", since = "2.13.0")
final def copyToBuffer[B >: T](dest: Buffer[B]): Unit
Deprecated
[Since version 2.13.0] Use `dest ++= coll` instead
Inherited from
IterableOnceOps
@inline @deprecated(message = "hasDefiniteSize on Iterator is the same as isEmpty", since = "2.13.0")
final override def hasDefiniteSize: Boolean
Deprecated
[Since version 2.13.0] hasDefiniteSize on Iterator is the same as isEmpty
Definition Classes
Iterator -> IterableOnceOps
Inherited from
Iterator
@deprecated(message = "Call scanRight on an Iterable instead.", since = "2.13.0")
def scanRight[B](z: B)(op: (T, B) => B): Iterator[B]
Deprecated
[Since version 2.13.0] Call scanRight on an Iterable instead.
Inherited from
Iterator
@deprecated(message = "Iterator.seq always returns the iterator itself", since = "2.13.0")
def seq: Splitter[T]
Deprecated
[Since version 2.13.0] Iterator.seq always returns the iterator itself
Inherited from
Iterator
@inline @deprecated(message = "Use .iterator instead of .toIterator", since = "2.13.0")
final def toIterator: Iterator[T]
Deprecated
[Since version 2.13.0] Use .iterator instead of .toIterator
Inherited from
IterableOnceOps
@inline @deprecated(message = "Use .to(LazyList) instead of .toStream", since = "2.13.0")
final def toStream: Stream[T]
Deprecated
[Since version 2.13.0] Use .to(LazyList) instead of .toStream
Inherited from
IterableOnceOps