LazyCombiner

scala.collection.parallel.mutable.LazyCombiner
trait LazyCombiner[Elem, +To, Buff <: Growable[Elem] & Sizing] extends Combiner[Elem, To]

Implements combining contents of two combiners by postponing the operation until result method is called. It chains the leaf results together instead of evaluating the actual collection.

Type parameters

Buff

the type of the buffers that contain leaf results and this combiner chains together

Elem

the type of the elements in the combiner

To

the type of the collection the combiner produces

Attributes

Graph
Supertypes
trait Combiner[Elem, To]
trait Parallel
trait Sizing
trait Builder[Elem, To]
trait Growable[Elem]
trait Clearable
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Value members

Abstract methods

def allocateAndCopy: To

Method that allocates the data structure and copies elements into it using size and chain members.

Method that allocates the data structure and copies elements into it using size and chain members.

Attributes

def newLazyCombiner(buffchain: ArrayBuffer[Buff]): LazyCombiner[Elem, To, Buff]

Concrete methods

def addOne(elem: Elem): this.type
def clear(): Unit
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 (see clear) if they are to be used again.

Also, combining two combiners c1 and c2 for which c1 eq c2 is true, that is, they are the same objects in memory:

c1.combine(c2)

always does nothing and returns c1.

Type parameters

N

the type of elements contained by the other builder

NewTo

the type of collection produced by the other builder

Value parameters

other

the other builder

Attributes

Returns

the parallel builder containing both the elements of this and the other builder

def result(): To
def size: Int

Inherited methods

final def ++=(elems: IterableOnce[Elem]): Growable.this.type

Attributes

Inherited from:
Growable
final def +=(elem: Elem): Growable.this.type

Attributes

Inherited from:
Growable
def addAll(elems: IterableOnce[Elem]): Growable.this.type

Attributes

Inherited from:
Growable

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.

Attributes

Inherited from:
Combiner

Attributes

Inherited from:
Combiner

Attributes

Inherited from:
Combiner
def fromSequential(seq: IterableOnce[Elem]): To

Add all elements from a sequential collection and return the result.

Add all elements from a sequential collection and return the result.

Attributes

Inherited from:
Combiner
def knownSize: Int

Attributes

Inherited from:
Growable
def mapResult[NewTo](f: To => NewTo): Builder[Elem, NewTo]

Attributes

Inherited from:
Builder

Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.

Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.

Attributes

Inherited from:
Combiner
final def sizeHint(coll: IterableOnce[_], delta: Int): Unit

Attributes

Inherited from:
Builder

Attributes

Inherited from:
Builder

Attributes

Inherited from:
Builder

Deprecated and Inherited methods

final def +=(elem1: Elem, elem2: Elem, elems: Elem*): Growable.this.type

Attributes

Deprecated
[Since version 2.13.0] Use `++=` aka `addAll` instead of varargs `+=`; infix operations with an operand of multiple args will be deprecated
Inherited from:
Growable

Abstract fields

val chain: ArrayBuffer[Buff]

Concrete fields

val lastbuff: Buff

Inherited fields

Attributes

Inherited from:
Combiner