scala.collection.parallel

# Combiner

#### 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

Source
  Combiner.scala
Since

  2.9

Linear Supertypes
Parallel, Sizing, Builder[Elem, To], Growable[Elem], Clearable, AnyRef, Any
Known Subclasses
LazyCombiner, ResizableParArrayCombiner, UnrolledParArrayCombiner
Type Hierarchy Learn more about scaladoc diagrams
Ordering

1. Alphabetic
2. By inheritance

Inherited

1. Combiner
2. Parallel
3. Sizing
4. Builder
5. Growable
6. Clearable
7. AnyRef
8. Any

Implicitly

1. by CollectionsHaveToParArray
2. by any2stringadd
3. by StringFormat
4. by Ensuring
5. by ArrowAssoc

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Abstract Value Members

1. #### abstract def +=(elem: Elem): Combiner.this.type

   Adds a single element to the builder.

   Adds a single element to the builder.

   elem

     the element to be added.

   returns

     the builder itself.

   Definition Classes
     Builder → Growable

2. #### abstract def clear(): Unit

   Clears the contents of this builder.

   Clears the contents of this builder. After execution of this method the builder will contain no elements.

   Definition Classes
     Builder → Growable → Clearable

3. #### 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 (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`.

   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

4. #### abstract def result(): To

   Produces a collection from the added elements.

   Produces a collection from the added elements. The builder's contents are undefined after this operation.

   returns

     a collection containing the elements added to this builder.

   Definition Classes
     Builder

5. #### abstract def size: Int

   Definition Classes
     Sizing

### Concrete Value Members

1. #### final def !=(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Definition Classes
     AnyRef → Any

3. #### def +(other: String): String

   Implicit information
     This member is added by an implicit conversion from Combiner[Elem, To] to any2stringadd[Combiner[Elem, To]] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd

4. #### def ++=(xs: TraversableOnce[Elem]): Combiner.this.type

   adds all elements produced by a TraversableOnce to this growable collection.

   adds all elements produced by a TraversableOnce to this growable collection.

   xs

     the TraversableOnce producing the elements to add.

   returns

     the growable collection itself.

   Definition Classes
     Growable

5. #### def +=(elem1: Elem, elem2: Elem, elems: Elem*): Combiner.this.type

   adds two or more elements to this growable collection.

   adds two or more elements to this growable collection.

   elem1

     the first element to add.

   elem2

     the second element to add.

   elems

     the remaining elements to add.

   returns

     the growable collection itself

   Definition Classes
     Growable

6. #### def ->[B](y: B): (Combiner[Elem, To], B)

   Implicit information
     This member is added by an implicit conversion from Combiner[Elem, To] to ArrowAssoc[Combiner[Elem, To]] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()

7. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

8. #### var _combinerTaskSupport: TaskSupport

9. #### final def asInstanceOf[T0]: T0

   Definition Classes
     Any

10. #### 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`.

11. #### def clone(): AnyRef

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

12. #### def combinerTaskSupport: TaskSupport

13. #### def combinerTaskSupport_=(cts: TaskSupport): Unit

14. #### def ensuring(cond: (Combiner[Elem, To]) ⇒ Boolean, msg: ⇒ Any): Combiner[Elem, To]

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to Ensuring[Combiner[Elem, To]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

15. #### def ensuring(cond: (Combiner[Elem, To]) ⇒ Boolean): Combiner[Elem, To]

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to Ensuring[Combiner[Elem, To]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

16. #### def ensuring(cond: Boolean, msg: ⇒ Any): Combiner[Elem, To]

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to Ensuring[Combiner[Elem, To]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

17. #### def ensuring(cond: Boolean): Combiner[Elem, To]

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to Ensuring[Combiner[Elem, To]] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

18. #### final def eq(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

19. #### def equals(arg0: Any): Boolean

    Definition Classes
      AnyRef → Any

20. #### def finalize(): Unit

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )

21. #### def formatted(fmtstr: String): String

    Returns string formatted according to given `format` string.

    Returns string formatted according to given `format` string. Format strings are as for `String.format` (@see java.lang.String.format).

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to StringFormat[Combiner[Elem, To]] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()

22. #### final def getClass(): Class[_]

    Definition Classes
      AnyRef → Any

23. #### def hashCode(): Int

    Definition Classes
      AnyRef → Any

24. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

25. #### def mapResult[NewTo](f: (To) ⇒ NewTo): Builder[Elem, NewTo]

    Creates a new builder by applying a transformation function to the results of this builder.

    Creates a new builder by applying a transformation function to the results of this builder.

    NewTo

      the type of collection returned by `f`.

    f

      the transformation function.

    returns

      a new builder which is the same as the current builder except that a transformation function is applied to this builder's result.

    Definition Classes
      Builder

26. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

27. #### final def notify(): Unit

    Definition Classes
      AnyRef

28. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

29. #### def resultWithTaskSupport: To

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

30. #### def sizeHint(coll: TraversableLike[_, _], delta: Int): Unit

    Gives a hint that one expects the `result` of this builder to have the same size as the given collection, plus some delta.

    Gives a hint that one expects the `result` of this builder to have the same size as the given collection, plus some delta. This will provide a hint only if the collection is known to have a cheap `size` method. Currently this is assumed to be the case if and only if the collection is of type `IndexedSeqLike`. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    coll

      the collection which serves as a hint for the result's size.

    delta

      a correction to add to the `coll.size` to produce the size hint.

    Definition Classes
      Builder

31. #### def sizeHint(coll: TraversableLike[_, _]): Unit

    Gives a hint that one expects the `result` of this builder to have the same size as the given collection, plus some delta.

    Gives a hint that one expects the `result` of this builder to have the same size as the given collection, plus some delta. This will provide a hint only if the collection is known to have a cheap `size` method. Currently this is assumed to be the case if and only if the collection is of type `IndexedSeqLike`. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    coll

      the collection which serves as a hint for the result's size.

    Definition Classes
      Builder

32. #### def sizeHint(size: Int): Unit

    Gives a hint how many elements are expected to be added when the next `result` is called.

    Gives a hint how many elements are expected to be added when the next `result` is called. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    size

      the hint how many elements will be added.

    Definition Classes
      Builder

33. #### def sizeHintBounded(size: Int, boundingColl: TraversableLike[_, _]): Unit

    Gives a hint how many elements are expected to be added when the next `result` is called, together with an upper bound given by the size of some other collection.

    Gives a hint how many elements are expected to be added when the next `result` is called, together with an upper bound given by the size of some other collection. Some builder classes will optimize their representation based on the hint. However, builder implementations are still required to work correctly even if the hint is wrong, i.e. a different number of elements is added.

    size

      the hint how many elements will be added.

    boundingColl

      the bounding collection. If it is an IndexedSeqLike, then sizes larger than collection's size are reduced.

    Definition Classes
      Builder

34. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

35. #### def toParArray: ParArray[T]

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to CollectionsHaveToParArray[Combiner[Elem, To], T] performed by method CollectionsHaveToParArray in scala.collection.parallel. This conversion will take place only if an implicit value of type (Combiner[Elem, To]) ⇒ GenTraversableOnce[T] is in scope.
    Definition Classes
      CollectionsHaveToParArray

36. #### def toString(): String

    Definition Classes
      AnyRef → Any

37. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

38. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

39. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

40. #### def →[B](y: B): (Combiner[Elem, To], B)

    Implicit information
      This member is added by an implicit conversion from Combiner[Elem, To] to ArrowAssoc[Combiner[Elem, To]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc

### Inherited from Parallel

### Inherited from Sizing

### Inherited from Builder[Elem, To]

### Inherited from Growable[Elem]

### Inherited from Clearable

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion CollectionsHaveToParArray from Combiner[Elem, To] to CollectionsHaveToParArray[Combiner[Elem, To], T]

### Inherited by implicit conversion any2stringadd from Combiner[Elem, To] to any2stringadd[Combiner[Elem, To]]

### Inherited by implicit conversion StringFormat from Combiner[Elem, To] to StringFormat[Combiner[Elem, To]]

### Inherited by implicit conversion Ensuring from Combiner[Elem, To] to Ensuring[Combiner[Elem, To]]

### Inherited by implicit conversion ArrowAssoc from Combiner[Elem, To] to ArrowAssoc[Combiner[Elem, To]]

### Ungrouped