ReusableBuilder (original) (raw)

scala.collection.mutable.ReusableBuilder

ReusableBuilder is a marker trait that indicates that a Builder can be reused to build more than one instance of a collection. In particular, calling result() followed by clear() will produce a collection and reset the builder to begin building a new collection of the same type.

In general no method other than clear() may be called after result(). It is up to subclasses to implement and to document other allowed sequences of operations (e.g. calling other methods after result() in order to obtain different snapshots of a collection under construction).

Type parameters

Elem

the type of elements that get added to the builder.

To

the type of collection that it produced.

Attributes

Source

ReusableBuilder.scala

Graph

Supertypes

Known subtypes

Members list

Clears the contents of this builder.

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

If executed immediately after a call to result(), this allows a new instance of the same type of collection to be built.

Attributes

Definition Classes

Source

ReusableBuilder.scala

Produces a collection from the added elements.

Produces a collection from the added elements.

After a call to result, the behavior of all other methods is undefined save for clear(). If clear() is called, then the builder is reset and may be used to build another instance.

Attributes

Returns

a collection containing the elements added to this builder.

Definition Classes

Source

ReusableBuilder.scala

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

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

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

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

Attributes

Inherited from:

Builder

Source

Builder.scala

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

Inherited from:

Builder

Source

Builder.scala

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

Inherited from:

Builder

Source

Builder.scala

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

Inherited from:

Builder

Source

Builder.scala

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

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

[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

Source

Growable.scala

In this article