Spec-Zone.ru › Scala 3.1

Трейт scala.collection.mutable.ReusableBuilder

Исходный код

трейт ReusableBuilder[-Elem, +To] extends Builder[Elem, To]

ReusableBuilder — это маркерный трейт, указывающий, что Builder может быть повторно использован для построения более чем одного экземпляра коллекции. В частности, вызов result(), за которым следует clear(), создаст коллекцию и сбросит билдер, чтобы начать построение новой коллекции того же типа.

В общем случае, после result(), не допускается вызов любого метода, кроме clear(). Подклассы должны реализовывать и документировать другие разрешённые последовательности операций (например, вызов других методов после result() для получения различных снимков создаваемой коллекции).

Параметры типа
Elem

тип элементов, добавляемых в билдер.

To

тип коллекции, которая будет создана.

Супертипы
трейт Builder[Elem, To]
трейт Growable[Elem]
трейт Clearable
класс Object
трейт Matchable
класс Any
Известные подтипы
17 типов
класс VectorBuilder[A]
класс AnyRefMapBuilder[K, V]
класс ArrayBuilder[T]
класс ofBoolean
класс ofByte
класс ofChar
класс ofDouble
класс ofFloat
класс ofInt
класс ofLong
класс ofRef[T]
класс ofShort
класс ofUnit
класс ImmutableBuilder[A, C]
класс ListBuffer[A]
класс LongMapBuilder[V]
класс StringBuilder

Абстрактные методы

Исходный код
переопределённый def clear(): Unit

Очищает содержимое этого билдера. После выполнения этого метода билдер не будет содержать элементов.

Если выполняется сразу после вызова result(), это позволяет построить новый экземпляр того же типа коллекции.

Классы-определения Builder -> Clearable

Исходный код
переопределённый def result(): To

Создаёт коллекцию из добавленных элементов.

После вызова result, поведение всех остальных методов неопределено, за исключением clear(). Если вызвать clear(), билдер сбрасывается и может быть использован для построения другого экземпляра.

Возвращает

коллекция, содержащая элементы, добавленные в этот билдер.

Классы-определения Builder

Наследованные методы

Исходный код@inline
final def ++=(xs: IterableOnce[Elem]): ReusableBuilder[Elem, To]

Псевдоним для addAll

Наследованно от Growable

Исходный код@inline
final def +=(elem: Elem): ReusableBuilder[Elem, To]

Псевдоним для addOne

Наследованно от Growable

Исходный код
def addAll(xs: IterableOnce[Elem]): ReusableBuilder[Elem, To]

Добавляет все элементы, сгенерированные IterableOnce, в эту коллекцию.

Параметры
xs

IterableOnce, генерирующая элементы для добавления.

Возвращает

сама коллекция.

Наследованно от Growable

Исходный код
def addOne(elem: Elem): ReusableBuilder[Elem, To]

Добавляет один элемент в эту нарастающую коллекцию.

Параметры
elem

элемент для добавления.

Возвращает

сама нарастающая коллекция

Наследованно от Growable

Исходный код
def knownSize: Int

Возвращает

количество элементов в создаваемой коллекции, если его можно легко вычислить, иначе -1. По умолчанию всегда возвращает -1.

Наследованно от Growable

Исходный код
def mapResult[NewTo](f: To => NewTo): Builder[Elem, NewTo]

Билдер, полученный из этого билдера, с применением преобразования f к результату.

Наследованно от Builder

Исходный код
final def sizeHint(coll: IterableOnce[_], delta: Int): Unit

Подсказка, что ожидается, что размер result этого билдера будет таким же, как у заданной коллекции, плюс некоторое значение delta. Эта подсказка будет использована только если у коллекции известен размер. Некоторые классы билдеров оптимизируют свои представления на основе подсказки. Однако реализации билдеров по-прежнему должны работать правильно, даже если подсказка неверна, т. е. добавлено разное количество элементов.

Параметры
coll

коллекция, которая служит подсказкой для размера результата.

delta

поправка, добавляемая к coll.size, чтобы получить подсказку размера.

Наследованно от Builder

Исходный код
def sizeHint(size: Int): Unit

Подсказка о том, сколько элементов ожидается добавить при следующем вызове result. Некоторые классы билдеров оптимизируют свои представления на основе подсказки. Однако реализации билдеров по-прежнему должны работать правильно, даже если подсказка неверна, т. е. добавлено разное количество элементов.

Параметры
size

подсказка о количестве ожидаемых элементов для добавления.

Наследованно от Builder

Исходный код
final def sizeHintBounded(size: Int, boundingColl: Iterable[_]): Unit

Подсказка о том, сколько элементов ожидается добавить при следующем вызове result, вместе с верхней границей, заданной размером другой коллекции. Некоторые классы билдеров оптимизируют свои представления на основе подсказки. Однако реализации билдеров по-прежнему должны работать правильно, даже если подсказка неверна, т. е. добавлено разное количество элементов.

Параметры значения
boundingColl

ограничивающая коллекция. Если это IndexedSeqLike, то размеры, превышающие размер коллекции, уменьшаются.

размер

подсказка о том, сколько элементов будет добавлено.

Унаследовано от Builder

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/collection/mutable/ReusableBuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API