Builder

scala.collection.mutable.Builder
trait Builder[-A, +To] extends Growable[A]

Base trait for collection builders.

After calling result() the behavior of a Builder (which is not also a scala.collection.mutable.ReusableBuilder) is undefined. No further methods should be called. It is common for mutable collections to be their own non-reusable Builder, in which case result() simply returns this.

Attributes

See also

scala.collection.mutable.ReusableBuilder for Builders which can be reused after calling result()

Source
Builder.scala
Graph
Supertypes
trait Growable[A]
trait Clearable
class Object
trait Matchable
class Any
Known subtypes
class Builder[K, V]
class GrowableBuilder[Elem, To]
trait MapOps[K, V, CC, C]
class TrieMap[K, V]
class AnyRefMap[K, V]
class CollisionProofHashMap[K, V]
class HashMap[K, V]
class LinkedHashMap[K, V]
class ListMap[K, V]
class LongMap[V]
trait Map[K, V]
trait Map[K, V]
class AbstractMap[K, V]
class WithDefault[K, V]
class WithDefault[K, V]
class OpenHashMap[Key, Value]
class TreeMap[K, V]
trait MultiMap[K, V]
trait SeqMap[K, V]
trait SortedMap[K, V]
trait SortedMapOps[K, V, CC, C]
class PriorityQueue[A]
trait ReusableBuilder[Elem, To]
class VectorBuilder[A]
class AnyRefMapBuilder[K, V]
class ArrayBuilder[T]
class ofBoolean
class ofByte
class ofChar
class ofDouble
class ofFloat
class ofInt
class ofLong
class ofRef[T]
class ofShort
class ofUnit
class ImmutableBuilder[A, C]
class ListBuffer[A]
class LongMapBuilder[V]
trait SetOps[A, CC, C]
class HashSet[A]
class LinkedHashSet[A]
trait Set[A]
class AbstractSet[A]
class BitSet
class TreeSet[A]
trait SortedSet[A]
trait SortedSetOps[A, CC, C]
class UnrolledBuffer[T]
class Accumulator[A, CC, C]
class AnyAccumulator[A]
Show all
Self type
Builder[A, To]

Members list

Value members

Abstract methods

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.

Attributes

Source
Builder.scala
def result(): To

Result collection consisting of all elements appended so far.

Result collection consisting of all elements appended so far.

Attributes

Source
Builder.scala

Concrete methods

def mapResult[NewTo](f: To => NewTo): Builder[A, NewTo]

A builder resulting from this builder my mapping the result using f.

A builder resulting from this builder my mapping the result using f.

Attributes

Source
Builder.scala
def sizeHint(size: Int): Unit

Gives a hint how many elements are expected to be added in total by the time result is called.

Gives a hint how many elements are expected to be added in total by the time result is called.

Some builder classes will optimize their representation based on the hint. However, builder implementations are required to work correctly even if the hint is wrong, e.g., a different number of elements is added, or the hint is out of range.

The default implementation simply ignores the hint.

Value parameters

size

the hint how many elements will be added.

Attributes

Source
Builder.scala
final def sizeHint(coll: IterableOnce[_], delta: Int): Unit

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

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

This method provides a hint only if the collection has a known size, as specified by the following pseudocode:

if (coll.knownSize != -1)
  if (coll.knownSize + delta <= 0) sizeHint(0)
  else sizeHint(coll.knownSize + delta)

If the delta is negative and the result size is known to be negative, then the size hint is issued at zero.

Some builder classes will optimize their representation based on the hint. However, builder implementations are required to work correctly even if the hint is wrong, i.e., if a different number of elements is added.

Value parameters

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 (zero if omitted).

Attributes

Source
Builder.scala
final def sizeHintBounded(size: Int, boundingColl: Iterable[_]): 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.

Value parameters

boundingColl

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

size

the hint how many elements will be added.

Attributes

Source
Builder.scala

Inherited methods

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

Alias for addAll

Alias for addAll

Attributes

Inherited from:
Growable
Source
Growable.scala
final def +=(elem: A): Growable.this.type

Alias for addOne

Alias for addOne

Attributes

Inherited from:
Growable
Source
Growable.scala
def addAll(elems: IterableOnce[A]): Growable.this.type

Adds all elements produced by an IterableOnce to this growable collection.

Adds all elements produced by an IterableOnce to this growable collection.

Value parameters

elems

the IterableOnce producing the elements to add.

Attributes

Returns

the growable collection itself.

Inherited from:
Growable
Source
Growable.scala
def knownSize: Int

The number of elements in the collection under construction, if it can be cheaply computed, -1 otherwise.

The number of elements in the collection under construction, if it can be cheaply computed, -1 otherwise.

Attributes

Returns

The number of elements. The default implementation always returns -1.

Inherited from:
Growable
Source
Growable.scala

Inherited and Abstract methods

def addOne(elem: A): Growable.this.type

Adds a single element to this growable collection.

Adds a single element to this growable collection.

Value parameters

elem

the element to add.

Attributes

Returns

the growable collection itself

Inherited from:
Growable
Source
Growable.scala

Deprecated and Inherited methods

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

Adds two or more elements to this growable collection.

Adds two or more elements to this growable collection.

Value parameters

elem1

the first element to add.

elem2

the second element to add.

elems

the remaining elements to add.

Attributes

Returns

the growable collection itself

Deprecated
true
Inherited from:
Growable
Source
Growable.scala