trait PreciseSplitter[+T] extends Splitter[T]
A precise splitter (or a precise split iterator) can be split into arbitrary number of splitters that traverse disjoint subsets of arbitrary sizes.
Implementors might want to override the parameterless split
method for efficiency.
- T
type of the elements this splitter traverses
- Alphabetic
- By Inheritance
- PreciseSplitter
- Splitter
- Iterator
- IterableOnceOps
- IterableOnce
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- class GroupedIterator[B >: A] extends AbstractIterator[immutable.Seq[B]]
- Definition Classes
- Iterator
Abstract Value Members
- abstract def hasNext: Boolean
- Definition Classes
- Iterator
- abstract def next(): T
- Definition Classes
- Iterator
- Annotations
- @throws(scala.this.throws.<init>$default$1[NoSuchElementException])
- abstract def psplit(sizes: Int*): Seq[PreciseSplitter[T]]
Splits the splitter into disjunct views.
Splits the splitter into disjunct views.
This overloaded version of the
split
method is specific to precise splitters. It returns a sequence of splitters, each iterating some subset of the elements in this splitter. The sizes of the subsplitters in the partition is equal to the size in the corresponding argument, as long as there are enough elements in this splitter to split it that way.If there aren't enough elements, a zero element splitter is appended for each additional argument. If there are additional elements, an additional splitter is appended at the end to compensate.
For example, say we have a splitter
ps
with 100 elements. Invoking:ps.split(50, 25, 25, 10, 5)
will return a sequence of five splitters, last two views being empty. On the other hand, calling:
ps.split(50, 40)
will return a sequence of three splitters, last of them containing ten elements.
Note: this method actually invalidates the current splitter.
Unlike the case with
split
found in splitters, views returned by this method can be empty.- sizes
the sizes used to split this split iterator into iterators that traverse disjunct subsets
- returns
a sequence of disjunct subsequence iterators of this parallel iterator
- abstract def split: Seq[PreciseSplitter[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
- Definition Classes
- PreciseSplitter → Splitter
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ++[B >: T](xs: => IterableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def addString(b: mutable.StringBuilder): mutable.StringBuilder
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
- final def addString(b: mutable.StringBuilder, sep: String): mutable.StringBuilder
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
- def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.StringBuilder
- Definition Classes
- IterableOnceOps
- 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(classOf[java.lang.CloneNotSupportedException]) @native()
- def collect[B](pf: PartialFunction[T, B]): Iterator[B]
- Definition Classes
- Iterator → IterableOnceOps
- def collectFirst[B](pf: PartialFunction[T, B]): Option[B]
- Definition Classes
- IterableOnceOps
- def concat[B >: T](xs: => IterableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
- def contains(elem: Any): Boolean
- Definition Classes
- Iterator
- def copyToArray[B >: T](xs: Array[B], start: Int, len: Int): Int
- Definition Classes
- IterableOnceOps
- def copyToArray[B >: T](xs: Array[B], start: Int): Int
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecatedOverriding("This should always forward to the 3-arg version of this method", "2.13.4")
- def copyToArray[B >: T](xs: Array[B]): Int
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecatedOverriding("This should always forward to the 3-arg version of this method", "2.13.4")
- def corresponds[B](that: IterableOnce[B])(p: (T, B) => Boolean): Boolean
- Definition Classes
- IterableOnceOps
- def count(p: (T) => Boolean): Int
- Definition Classes
- IterableOnceOps
- def distinct: Iterator[T]
- Definition Classes
- Iterator
- def distinctBy[B](f: (T) => B): Iterator[T]
- Definition Classes
- Iterator
- def drop(n: Int): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def dropWhile(p: (T) => Boolean): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def duplicate: (Iterator[T], Iterator[T])
- Definition Classes
- Iterator
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def exists(p: (T) => Boolean): Boolean
- Definition Classes
- IterableOnceOps
- def filter(p: (T) => Boolean): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def filterNot(p: (T) => Boolean): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def find(p: (T) => Boolean): Option[T]
- Definition Classes
- IterableOnceOps
- def flatMap[B](f: (T) => IterableOnce[B]): Iterator[B]
- Definition Classes
- Iterator → IterableOnceOps
- def flatten[B](implicit ev: (T) => IterableOnce[B]): Iterator[B]
- Definition Classes
- Iterator → IterableOnceOps
- def fold[A1 >: T](z: A1)(op: (A1, A1) => A1): A1
- Definition Classes
- IterableOnceOps
- def foldLeft[B](z: B)(op: (B, T) => B): B
- Definition Classes
- IterableOnceOps
- def foldRight[B](z: B)(op: (T, B) => B): B
- Definition Classes
- IterableOnceOps
- def forall(p: (T) => Boolean): Boolean
- Definition Classes
- IterableOnceOps
- def foreach[U](f: (T) => U): Unit
- Definition Classes
- IterableOnceOps
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def grouped[B >: T](size: Int): GroupedIterator[B]
- Definition Classes
- Iterator
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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 isEmpty: Boolean
- Definition Classes
- Iterator → IterableOnceOps
- Annotations
- @deprecatedOverriding("isEmpty is defined as !hasNext; override hasNext instead", "2.13.0")
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isTraversableAgain: Boolean
- Definition Classes
- IterableOnceOps
- final def iterator: Iterator[T]
- Definition Classes
- Iterator → IterableOnce
- Annotations
- @inline()
- def knownSize: Int
- Definition Classes
- IterableOnce
- final def length: Int
- Definition Classes
- Iterator
- Annotations
- @inline()
- def map[B](f: (T) => B): Iterator[B]
- Definition Classes
- Iterator → IterableOnceOps
- def max[B >: T](implicit ord: math.Ordering[B]): T
- Definition Classes
- IterableOnceOps
- def maxBy[B](f: (T) => B)(implicit cmp: math.Ordering[B]): T
- Definition Classes
- IterableOnceOps
- def maxByOption[B](f: (T) => B)(implicit cmp: math.Ordering[B]): Option[T]
- Definition Classes
- IterableOnceOps
- def maxOption[B >: T](implicit ord: math.Ordering[B]): Option[T]
- Definition Classes
- IterableOnceOps
- def min[B >: T](implicit ord: math.Ordering[B]): T
- Definition Classes
- IterableOnceOps
- def minBy[B](f: (T) => B)(implicit cmp: math.Ordering[B]): T
- Definition Classes
- IterableOnceOps
- def minByOption[B](f: (T) => B)(implicit cmp: math.Ordering[B]): Option[T]
- Definition Classes
- IterableOnceOps
- def minOption[B >: T](implicit ord: math.Ordering[B]): Option[T]
- Definition Classes
- IterableOnceOps
- final def mkString: String
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
- final def mkString(sep: String): String
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
- final def mkString(start: String, sep: String, end: String): String
- Definition Classes
- IterableOnceOps
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nextOption(): Option[T]
- Definition Classes
- Iterator
- def nonEmpty: Boolean
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def padTo[B >: T](len: Int, elem: B): Iterator[B]
- 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: math.Numeric[B]): B
- Definition Classes
- IterableOnceOps
- def reduce[B >: T](op: (B, B) => B): B
- Definition Classes
- IterableOnceOps
- def reduceLeft[B >: T](op: (B, T) => B): B
- Definition Classes
- IterableOnceOps
- def reduceLeftOption[B >: T](op: (B, T) => B): Option[B]
- Definition Classes
- IterableOnceOps
- def reduceOption[B >: T](op: (B, B) => B): Option[B]
- Definition Classes
- IterableOnceOps
- def reduceRight[B >: T](op: (T, B) => B): B
- Definition Classes
- IterableOnceOps
- def reduceRightOption[B >: T](op: (T, B) => B): Option[B]
- Definition Classes
- IterableOnceOps
- def reversed: Iterable[T]
- Attributes
- protected
- Definition Classes
- IterableOnceOps
- def sameElements[B >: T](that: IterableOnce[B]): Boolean
- Definition Classes
- Iterator
- def scanLeft[B](z: B)(op: (B, T) => B): Iterator[B]
- Definition Classes
- Iterator → IterableOnceOps
- def size: Int
- Definition Classes
- IterableOnceOps
- def slice(from: Int, until: Int): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- 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 → IterableOnceOps
- def splitAt(n: Int): (Iterator[T], Iterator[T])
- Definition Classes
- IterableOnceOps
- def stepper[S <: Stepper[_]](implicit shape: StepperShape[T, S]): S
- Definition Classes
- IterableOnce
- def sum[B >: T](implicit num: math.Numeric[B]): B
- Definition Classes
- IterableOnceOps
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def take(n: Int): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def takeWhile(p: (T) => Boolean): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def tapEach[U](f: (T) => U): Iterator[T]
- Definition Classes
- Iterator → IterableOnceOps
- def to[C1](factory: Factory[T, C1]): C1
- Definition Classes
- IterableOnceOps
- def toArray[B >: T](implicit arg0: ClassTag[B]): Array[B]
- Definition Classes
- IterableOnceOps
- final def toBuffer[B >: T]: Buffer[B]
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
- def toIndexedSeq: immutable.IndexedSeq[T]
- Definition Classes
- IterableOnceOps
- def toList: immutable.List[T]
- Definition Classes
- IterableOnceOps
- def toMap[K, V](implicit ev: <:<[T, (K, V)]): immutable.Map[K, V]
- Definition Classes
- IterableOnceOps
- def toSeq: immutable.Seq[T]
- Definition Classes
- IterableOnceOps
- def toSet[B >: T]: immutable.Set[B]
- Definition Classes
- IterableOnceOps
- def toString(): String
- Definition Classes
- Iterator → AnyRef → Any
- def toVector: immutable.Vector[T]
- Definition Classes
- IterableOnceOps
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withFilter(p: (T) => Boolean): Iterator[T]
- Definition Classes
- Iterator
- def zip[B](that: IterableOnce[B]): Iterator[(T, B)]
- Definition Classes
- Iterator
- def zipAll[A1 >: T, B](that: IterableOnce[B], thisElem: A1, thatElem: B): Iterator[(A1, B)]
- Definition Classes
- Iterator
- def zipWithIndex: Iterator[(T, Int)]
- Definition Classes
- Iterator → IterableOnceOps
Deprecated Value Members
- final def /:[B](z: B)(op: (B, T) => B): B
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) Use foldLeft instead of /:
- final def :\[B](z: B)(op: (T, B) => B): B
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) Use foldRight instead of :\
- def aggregate[B](z: => B)(seqop: (B, T) => B, combop: (B, B) => B): B
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0)
aggregate
is not relevant for sequential collections. UsefoldLeft(z)(seqop)
instead.
- final def copyToBuffer[B >: T](dest: Buffer[B]): Unit
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) Use
dest ++= coll
instead
- final def hasDefiniteSize: Boolean
- Definition Classes
- Iterator → IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) hasDefiniteSize on Iterator is the same as isEmpty
- def scanRight[B](z: B)(op: (T, B) => B): Iterator[B]
- Definition Classes
- Iterator
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Call scanRight on an Iterable instead.
- def seq: PreciseSplitter.this.type
- Definition Classes
- Iterator
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Iterator.seq always returns the iterator itself
- final def toIterator: Iterator[T]
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) Use .iterator instead of .toIterator
- final def toStream: immutable.Stream[T]
- Definition Classes
- IterableOnceOps
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.13.0) Use .to(LazyList) instead of .toStream