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
+=(elem: Elem): Combiner.this.type
- Definition Classes
- Builder → Growable
-
abstract
def
clear(): Unit
- Definition Classes
- Builder → Growable → 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
-
def
++=(xs: TraversableOnce[Elem]): Combiner.this.type
- Definition Classes
- Growable
-
def
+=(elem1: Elem, elem2: Elem, elems: Elem*): Combiner.this.type
- Definition Classes
- Growable
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
_combinerTaskSupport: TaskSupport
- Annotations
- @transient() @volatile()
-
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( ... )
- def combinerTaskSupport: TaskSupport
- def combinerTaskSupport_=(cts: TaskSupport): Unit
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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.TraversableOnce[Elem]): To
Add all elements from a sequential collection and return the result.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
resultWithTaskSupport: To
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.
-
def
sizeHint(coll: TraversableLike[_, _], delta: Int): Unit
- Definition Classes
- Builder
-
def
sizeHint(coll: TraversableLike[_, _]): Unit
- Definition Classes
- Builder
-
def
sizeHint(size: Int): Unit
- Definition Classes
- Builder
-
def
sizeHintBounded(size: Int, boundingColl: TraversableLike[_, _]): 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )