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
- Since
2.9
- Alphabetic
- By Inheritance
- Combiner
- Parallel
- Sizing
- Builder
- Growable
- Clearable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
other
builder, producing a new builder containing both their elements.Combines the contents of the receiver builder and the
other
builder, 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
result
is invoked, or use a merge operation specific to the data structure in question.Note that both the receiver builder and
other
builder become invalidated after the invocation of this method, and should be cleared (seeclear
) if they are to be used again.Also, combining two combiners
c1
andc2
for whichc1 eq c2
istrue
, 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
other
builder- NewTo
the type of collection produced by the
other
builder- other
the other builder
- returns
the parallel builder containing both the elements of this and the
other
builder
- 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
true
if this combiner has a thread-safe+=
and is meant to be shared across several threads constructing the collection.Returns
true
if 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[java.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[java.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()