trait Combiner[-Elem, +To] extends Builder[Elem, To] with Sizing with Parallel
The base trait for all combiners.
A combiner incremental collection construction just like
a regular builder, but also implements an efficient merge operation of two builders
via combine method. Once the collection is constructed, it may be obtained by invoking
the result method.
The complexity of the combine method should be less than linear for best
performance. The result method doesn't have to be a constant time operation,
but may be performed in parallel.
- Elem
the type of the elements added to the builder
- To
the type of the collection the builder produces
- Alphabetic
- By Inheritance
- Combiner
- Parallel
- Sizing
- Builder
- Growable
- Clearable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def addOne(elem: Elem): Combiner.this.type
- Definition Classes
- Growable
- abstract def clear(): Unit
- Definition Classes
- Builder → Clearable
- abstract def combine[N <: Elem, NewTo >: To](other: Combiner[N, NewTo]): Combiner[N, NewTo]
Combines the contents of the receiver builder and the
otherbuilder, producing a new builder containing both their elements.Combines the contents of the receiver builder and the
otherbuilder, producing a new builder containing both their elements.This method may combine the two builders by copying them into a larger collection, by producing a lazy view that gets evaluated once
resultis invoked, or use a merge operation specific to the data structure in question.Note that both the receiver builder and
otherbuilder become invalidated after the invocation of this method, and should be cleared (seeclear) if they are to be used again.Also, combining two combiners
c1andc2for whichc1 eq c2istrue, that is, they are the same objects in memory:c1.combine(c2)
always does nothing and returns
c1.- N
the type of elements contained by the
otherbuilder- NewTo
the type of collection produced by the
otherbuilder- other
the other builder
- returns
the parallel builder containing both the elements of this and the
otherbuilder
- abstract def result(): To
- Definition Classes
- Builder
- abstract def size: Int
- Definition Classes
- Sizing
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ++=(xs: IterableOnce[Elem]): Combiner.this.type
- Definition Classes
- Growable
- Annotations
- @inline()
- final def +=(elem: Elem): Combiner.this.type
- Definition Classes
- Growable
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val _combinerTaskSupport: TaskSupport
- Annotations
- @transient() @volatile()
- def addAll(xs: IterableOnce[Elem]): Combiner.this.type
- Definition Classes
- Growable
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def canBeShared: Boolean
Returns
trueif this combiner has a thread-safe+=and is meant to be shared across several threads constructing the collection.Returns
trueif this combiner has a thread-safe+=and is meant to be shared across several threads constructing the collection.By default, this method returns
false. - def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def combinerTaskSupport: TaskSupport
- def combinerTaskSupport_=(cts: TaskSupport): Unit
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def fromSequential(seq: scala.IterableOnce[Elem]): To
Add all elements from a sequential collection and return the result.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def knownSize: Int
- Definition Classes
- Growable
- def mapResult[NewTo](f: (To) => NewTo): Builder[Elem, NewTo]
- Definition Classes
- Builder
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def resultWithTaskSupport: To
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.
- final def sizeHint(coll: IterableOnce[_], delta: Int): Unit
- Definition Classes
- Builder
- def sizeHint(size: Int): Unit
- Definition Classes
- Builder
- final def sizeHintBounded(size: Int, boundingColl: Iterable[_]): Unit
- Definition Classes
- Builder
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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()