Пакет scala.collection.mutable
пакет mutable
Члены типа
абстрактный класс AbstractBuffer[A] extends AbstractSeq[A] с Buffer[A]
абстрактный класс AbstractIterable[A] extends collection.AbstractIterable[A] с Iterable[A]
абстрактный класс AbstractMap[K, V] extends collection.AbstractMap[K, V] с Map[K, V]
абстрактный класс AbstractSeq[A] extends collection.AbstractSeq[A] с Seq[A]
абстрактный класс AbstractSet[A] extends AbstractIterable[A] с Set[A]
абстрактный класс AbstractSortedMap[A, B] extends AbstractMap[A, B] с SortedMap[A, B]
абстрактный класс AbstractSortedSet[A] extends AbstractSet[A] с SortedSet[A]
финальный класс AnyRefMap[K <: AnyRef, V] extends AbstractMap[K, V] с Map[K, V] с MapLike[K, V, AnyRefMap[K, V]] с Serializable
класс ArrayBuffer[A] extends AbstractBuffer[A] with Buffer[A] with GenericTraversableTemplate[A, ArrayBuffer] with BufferLike[A, ArrayBuffer[A]] with IndexedSeqOptimized[A, ArrayBuffer[A]] with Builder[A, ArrayBuffer[A]] with ResizableArray[A] with CustomParallelizable[A, ParArray[A]] with Serializable
Реализация класса Buffer с использованием массива для внутреннего представления объединённой последовательности. Добавление, обновление и произвольный доступ занимают постоянное время (амортизированное время). Вставка в начало и удаление занимают время, линейно зависящее от размера буфера.
- A
тип элементов этого массива.
- Аннотации
- @SerialVersionUID()
- C момента
1
- См. также
"Обзор библиотеки коллекций Scala" раздел по
Array Buffersдля получения дополнительной информации.
абстрактный класс ArrayBuilder[T] extends ReusableBuilder[T, Array[T]] with Serializable
Класс-строитель для массивов.
- T
тип элементов для сборщика.
- C момента
2.8
тракт ArrayLike[A, +Repr] extends IndexedSeqOptimized[A, Repr]
Общие надклассы ArrayOps и WrappedArray, факторизующие метод deep для массивов и обернутых массивов, и служащие маркером для обёрток массивов.
- A
тип элементов, содержащихся в объекте типа массив.
- Repr
тип фактической коллекции, содержащей элементы.
запечатанный тракт ArrayOps[T] extends ArrayLike[T, Array[T]] with CustomParallelizable[T, ParArray[T]]
Этот класс служит обёрткой для Array с всеми операциями, которые можно найти в индексированных последовательностях. В случае необходимости, экземпляры массивов неявно преобразуются в этот класс.
Разница между этим классом и WrappedArray заключается в том, что вызов методов преобразования, таких как filter и map, приведет к массиву, в то время как WrappedArray останется WrappedArray.
- T
тип элементов, содержащихся в этом массиве.
- C момента
2.8
класс ArraySeq[A] extends AbstractSeq[A] with IndexedSeq[A] with GenericTraversableTemplate[A, ArraySeq] with IndexedSeqOptimized[A, ArraySeq[A]] with CustomParallelizable[A, ParArray[A]] with Serializable
Класс для полиморфных массивов элементов, который внутренне представлен массивом объектов. Это означает, что элементы примитивных типов упаковываются.
- A
тип элементов, содержащихся в этой последовательности массива.
- Аннотации
- @SerialVersionUID()
- C момента
2.8
- См. также
"Обзор библиотеки коллекций Scala" раздел по
Array Sequencesдля получения дополнительной информации.
класс ArrayStack[T] extends AbstractSeq[T] with IndexedSeq[T] with IndexedSeqLike[T, ArrayStack[T]] with GenericTraversableTemplate[T, ArrayStack] with IndexedSeqOptimized[T, ArrayStack[T]] with Cloneable[ArrayStack[T]] with Builder[T, ArrayStack[T]] with Serializable
Простой класс стека, реализованный с помощью массива. Должен быть значительно быстрее стандартного мутабельного стека.
- T
тип элементов, содержащихся в этом стеке массивов.
- Аннотации
- @SerialVersionUID()
- С тех пор
2.7
- См. также
"Обзор библиотеки коллекций Scala" раздел по
Array Stacksдля получения дополнительной информации.
класс BitSet extends AbstractSet[Int] with SortedSet[Int] with collection.BitSet with BitSetLike[BitSet] with SetLike[Int, BitSet] with Serializable
Класс для мутабельных битовых множеств.
Битовые множества — это множества неотрицательных целых чисел, которые представлены массивами переменной длины из битов, упакованных в 64-битные слова. Занимаемая битовым множеством память определяется наибольшим числом, хранящимся в нем.
- Аннотации
- @SerialVersionUID()
- См. также
"Обзор библиотеки коллекций Scala" раздел по
Mutable Bitsetsдля получения дополнительной информации.
трайт Buffer[A] extends Seq[A] with GenericTraversableTemplate[A, Buffer] with BufferLike[A, Buffer[A]] with scala.Cloneable
Буферы используются для создания последовательностей элементов постепенно, путем добавления, вставки или удаления новых элементов. Также можно получать доступ и изменять элементы в произвольном порядке с помощью индекса элемента в текущей последовательности.
- A
тип элементов, содержащихся в этом буфере.
- С тех пор
1
трайт BufferLike[A, +This <: BufferLike[A, This] with Buffer[A]] extends Growable[A] with Shrinkable[A] with Scriptable[A] with Subtractable[A, This] with SeqLike[A, This] with scala.Cloneable
Шаблонный трайт для буферов типа Buffer[A].
Буферы используются для создания последовательностей элементов постепенно, путем добавления, вставки или удаления новых элементов. Также можно получать доступ и изменять элементы в произвольном порядке с помощью индекса элемента в текущей последовательности.
- A
тип элементов буфера
- This
тип самого буфера.
- С тех пор
2.8
- Примечание
Этот трайт предоставляет большинство операций с буфером независимо от его представления. Обычно он наследуется конкретными реализациями буферов. Для реализации конкретного буфера вам необходимо предоставить реализации следующих методов:
def apply(idx: Int): A def update(idx: Int, elem: A) def length: Int def clear() def +=(elem: A): this.type def +=:(elem: A): this.type def insertAll(n: Int, iter: Traversable[A]) def remove(n: Int): A
трайт Builder[-Elem, +To] extends Growable[Elem]
Базовый трайт всех билдеров. Билдер позволяет построить коллекцию постепенно, добавляя элементы в билдер с помощью +=, а затем преобразуя в необходимый тип коллекции с помощью result.
Нельзя предполагать, что один Builder может построить более одного экземпляра желаемой коллекции. Отдельные подклассы могут позволять такое поведение. В противном случае result должен рассматриваться как терминальная операция: после ее вызова к билдеру больше не следует обращаться с другими методами. Разработайте трайт collection.mutable.ReusableBuilder вместо Builder для билдеров, которые можно повторно использовать для создания нескольких экземпляров.
- Elem
тип элементов, которые добавляются в билдер.
- To
тип коллекции, которая была получена.
- С тех пор
2.8
тракт Cloneable[+A <: AnyRef] extends scala.Cloneable
Тракт для клонируемых коллекций.
- A
Тип элементов, содержащихся в коллекции, ковариантный и с ссылкой на тип в качестве верхней границы.
- Since
2.8
final класс DefaultEntry[A, B] extends HashEntry[A, DefaultEntry[A, B]] with Serializable
Класс, используемый внутри для модели по умолчанию для карт.
- Since
2.3
тракт FlatHashTable[A] extends HashUtils[A]
Реализующий класс, поддерживающий HashSet.
Этот тракт используется внутри. Он может быть смешан с различными коллекциями, использующими хеш-таблицу в качестве реализации.
класс GrowingBuilder[Elem, To <: Growable[Elem]] extends Builder[Elem, To]
Канонический билдер для коллекций, которые могут расти, т.е. поддерживают эффективный метод +=, который добавляет элемент в коллекцию.
GrowableBuilders могут производить только один экземпляр коллекции, которую они увеличивают.
- Since
2.8
тракт HashEntry[A, E] extends AnyRef
Класс, используемый внутри.
- Since
2.8
класс HashMap[A, B] extends AbstractMap[A, B] with Map[A, B] with MapLike[A, B, HashMap[A, B]] with HashTable[A, DefaultEntry[A, B]] with CustomParallelizable[(A, B), ParHashMap[A, B]] with Serializable
Этот класс реализует изменяемые карты с помощью хеш-таблицы.
- A
тип ключей, содержащихся в этой хеш-карте.
- B
тип значений, присвоенных ключам в этой хеш-карте.
- Аннотации
- @SerialVersionUID()
- Since
1
- См. также
Обзор библиотеки коллекций Scala раздел о
Hash Tablesдля получения дополнительной информации.
класс HashSet[A] extends AbstractSet[A] with Set[A] with GenericSetTemplate[A, HashSet] with SetLike[A, HashSet[A]] with FlatHashTable[A] with CustomParallelizable[A, ParHashSet[A]] with Serializable
Этот класс реализует изменяемые множества с помощью хеш-таблицы.
- Аннотации
- @SerialVersionUID()
- Since
1
- См. также
Обзор библиотеки коллекций Scala раздел о
Hash Tablesдля получения дополнительной информации.
тракт HashTable[A, Entry >: Null <: HashEntry[A, Entry]] extends HashUtils[A]
Этот класс можно использовать для построения структур данных, основанных на хеш-таблицах. Класс HashTable[A] реализует хеш-таблицу, которая сопоставляет ключи типа A со значениями полностью абстрактного типа члена Entry. Классы, использующие HashTable, должны предоставить реализацию для Entry.
В основном существуют два параметра, которые влияют на производительность хеш-таблицы: начальный размер и коэффициент заполнения. Размер относится к количеству ведер в хеш-таблице, а коэффициент заполнения — это мера того, насколько полной может стать хеш-таблица, прежде чем ее размер будет автоматически удвоен. Оба параметра можно изменить, переопределив соответствующие значения в классе HashTable.
- A
тип элементов, содержащихся в этой хеш-таблице.
- Since
1
class History[Evt, Pub] extends AbstractIterable[(Pub, Evt)] with Subscriber[Evt, Pub] with Iterable[(Pub, Evt)] with Serializable
Объекты History[A, B] могут подписываться на события типа A, опубликованные объектом типа B . Объект-подписчик истории записывает все опубликованные события до максимального числа maxHistory событий.
- Evt
Тип событий.
- Pub
Тип издателей.
- Annotations
- @SerialVersionUID()
- Since
1
trait IndexedSeq[A] extends Seq[A] with collection.IndexedSeq[A] with GenericTraversableTemplate[A, IndexedSeq] with IndexedSeqLike[A, IndexedSeq[A]]
trait IndexedSeqLike[A, +Repr] extends collection.IndexedSeqLike[A, Repr]
Подкласс scala.collection.IndexedSeq, представляющий изменяемые последовательности.
Он объявляет метод update, который позволяет обновлять элемент по определенному индексу в последовательности.
Этот трайт просто реализует iterator в терминах apply и length. Однако см. IndexedSeqOptimized для реализации трайта, который переопределяет операции, чтобы сделать их более быстрыми при предположении о быстром произвольном доступе с apply.
- A
тип элемента изменяемой индексированной последовательности
- Repr
тип фактической изменяемой индексированной последовательности, содержащей элементы.
trait IndexedSeqOptimized[A, +Repr] extends IndexedSeqLike[A, Repr] with collection.IndexedSeqOptimized[A, Repr]
Подкласс scala.collection.IndexedSeq, представляющий изменяемые последовательности.
- Since
2.8
trait IndexedSeqView[A, +Coll] extends IndexedSeq[A] with IndexedSeqOptimized[A, IndexedSeqView[A, Coll]] with SeqView[A, Coll] with SeqViewLike[A, Coll, IndexedSeqView[A, Coll]]
Нестрогий вид изменяемой IndexedSeq.
Вид — это ленивая версия какой-либо коллекции. Трансформаторы коллекций, такие как map или filter или ++, не проходят по элементам при применении к виду. Вместо этого они создают новый вид, который просто записывает тот факт, что операция должна быть применена. Элементы коллекции и операции со взглядом обращаются к ним, когда нужен результат, отличный от взгляда, или когда вызывается метод force для вида. Некоторые из операций этого класса снова дадут изменяемую индексированную последовательность, другие дадут просто индексированную последовательность типа collection.IndexedSeq . Поскольку это листовой класс, нет связанного класса Like.
- A
тип элемента вида
- Coll
тип базовой коллекции, содержащей элементы.
- Since
2.8
тракт Iterable[A] extends Traversable[A] with collection.Iterable[A] with GenericTraversableTemplate[A, Iterable] with IterableLike[A, Iterable[A]] with Parallelizable[A, ParIterable[A]]
Базовый тракт для итерируемых коллекций, которые могут быть изменены.
Это базовый тракт для всех изменяемых коллекций Scala, которые определяют метод iterator, чтобы последовательно перебирать элементы коллекции. Реализации этого тракта должны предоставить конкретный метод с сигнатурой:
def iterator: Iterator[A]
Они также должны предоставить метод newBuilder, который создаёт билдер для коллекций того же типа.
Этот тракт реализует метод Iterable's foreach перебирая все элементы с помощью iterator. Подклассы должны повторно реализовать foreach, если возможно, более эффективно.
Этот тракт добавляет методы iterator, sameElements, takeRight, dropRight к методам, унаследованным от тракта `Traversable`.
Примечание: Этот тракт заменяет каждый метод, использующий break в TraversableLike, на версию с итератором.
абстрактный класс LazyBuilder[Elem, +To] extends ReusableBuilder[Elem, To]
Билдер, который создаёт результат лениво. Итераторы или итерируемые объекты, которые добавляются в этот билдер с помощью ++=, не оцениваются до вызова result.
Этот билдер может быть повторно использован.
- Elem
тип элементов для этого билдера.
- To
тип коллекции, которую строит этот билдер.
- Since
2.8
тракт LinearSeq[A] extends Seq[A] with collection.LinearSeq[A] with GenericTraversableTemplate[A, LinearSeq] with LinearSeqLike[A, LinearSeq[A]]
Подтракт collection.LinearSeq, который представляет последовательности, которые можно изменить.
Линейные последовательности имеют достаточно эффективные методы head, tail и isEmpty. Если эти методы обеспечивают самый быстрый способ обхода коллекции, то коллекция Coll, которая расширяет этот тракт, также должна расширять LinearSeqOptimized[A, Coll[A]].
final класс LinkedEntry[A, B] extends HashEntry[A, LinkedEntry[A, B]] with Serializable
Класс для записи связанного хеш-карты, используемый внутри.
- Since
2.8
класс LinkedHashMap[A, B] extends AbstractMap[A, B] with Map[A, B] with MapLike[A, B, LinkedHashMap[A, B]] with HashTable[A, LinkedEntry[A, B]] with Serializable
Этот класс реализует изменяемые карты, используя хеш-таблицу. Итератор и все методы обхода этого класса посещают элементы в порядке их вставки.
- A
тип ключей, содержащихся в этой хеш-карте.
- B
тип значений, присвоенных ключам в этой хеш-карте.
- Аннотации
- @SerialVersionUID()
класс LinkedHashSet[A] extends AbstractSet[A] with Set[A] with GenericSetTemplate[A, LinkedHashSet] with SetLike[A, LinkedHashSet[A]] with HashTable[A, Entry[A]] with Serializable
Этот класс реализует изменяемые множества, используя хеш-таблицу. Итератор и все методы обхода элементов этого класса посещают элементы в порядке их вставки.
- A
тип элементов, содержащихся в этом множестве.
- Аннотации
- @SerialVersionUID()
- С тех пор
1
final class ListBuffer[A] extends AbstractBuffer[A] with Buffer[A] with GenericTraversableTemplate[A, ListBuffer] with BufferLike[A, ListBuffer[A]] with ReusableBuilder[A, immutable.List[A]] with SeqForwarder[A] with Serializable
Реализация буфера, поддерживаемого списком. Она обеспечивает постоянное время добавления в начало и конец. Большинство других операций линейные.
- A
тип элементов этого буфера списка.
- Аннотации
- @SerialVersionUID()
- С тех пор
1
- См. также
Обзор библиотеки коллекций Scala раздел по буферам списков для получения дополнительной информации.
class ListMap[A, B] extends AbstractMap[A, B] with Map[A, B] with MapLike[A, B, ListMap[A, B]] with Serializable
Простой изменяемый массив, основанный на списке, поэтому он сохраняет порядок вставки.
- A
тип ключей, содержащихся в этом массиве.
- B
тип значений, присвоенных ключам в этом массиве.
final class LongMap[V] extends AbstractMap[Long, V] with Map[Long, V] with MapLike[Long, V, LongMap[V]] with Serializable
Этот класс реализует изменяемые массивы с ключами типа Long, основанными на хеш-таблице с открытым адресованием.
Основные операции над отдельными элементами массива, включая contains и get, как правило, существенно быстрее с LongMap по сравнению с HashMap. Методы, действующие над всем массивом, включая foreach и map, как правило, не ожидаются быстрее, чем с общим массивом, за исключением тех, которые используют особенности внутренней структуры массива: foreachKey, foreachValue, mapValuesNow, и transformValues.
Массивы с открытым адресованием могут стать менее эффективными при поиске после многократного добавления/удаления элементов. Хотя LongMap делает все возможное, чтобы оставаться эффективным независимо от этого, вызов repack для массива, из которого больше не будут удаляться элементы, но который будет активно использоваться, может сэкономить как время, так и объем памяти.
Этот массив не предназначен для хранения более 229 элементов (приблизительно 500 миллионов). Максимальная емкость составляет 230, но производительность быстро ухудшается, когда 230 приближается.
trait Map[K, V] extends Iterable[(K, V)] with collection.Map[K, V] with MapLike[K, V, Map[K, V]]
Базовый тракт для изменяемых массивов.
Примечание к реализации: Этот тракт предоставляет большинство операций с изменяемым массивом независимо от его представления. Обычно он наследуется конкретными реализациями массивов.
Для реализации конкретного изменяемого массива необходимо предоставить реализации следующих методов:
def get(key: K): Option[V] def iterator: Iterator[(K, V)] def += (kv: (K, V)): This def -= (key: K): This
Если вы хотите, чтобы методы, такие как take, drop, filter, также возвращали тот же вид массива, вы также должны переопределить:
def empty: This
Также целесообразно переопределить методы foreach и size для повышения эффективности.
- С тех пор
1.0
class MapBuilder[A, B, Coll <: GenMap[A, B] with GenMapLike[A, B, Coll]] extends ReusableBuilder[(A, B), Coll]
Канонический билдер для неизменяемых карт, работающий с методом карты + для добавления новых элементов. Коллекции строятся из их empty элемента с помощью этого + метода.
- A
Тип ключей для карты, создаваемой этим билдером.
- B
Тип значений для карты, создаваемой этим билдером.
- Coll
Тип фактической коллекции, которую строит этот билдер.
- Since
2.8
trait MapLike[K, V, +This <: MapLike[K, V, This] with Map[K, V]] extends collection.MapLike[K, V, This] with Builder[(K, V), This] with Growable[(K, V)] with Shrinkable[K] with Cloneable[This] with Parallelizable[(K, V), ParMap[K, V]]
Шаблонный интерфейс для изменяемых карт.
Примечание об реализации: Этот интерфейс предоставляет большинство операций изменяемой Map независимо от её представления. Он обычно наследуется конкретными реализациями карт.
Для реализации конкретной изменяемой карты, необходимо предоставить реализации следующих методов:
def get(key: K): Option[V] def iterator: Iterator[(K, V)] def += (kv: (K, V)): This def -= (key: K): This
Если вы хотите, чтобы методы, такие как take, drop, filter также возвращали тот же тип карты, вы должны также переопределить:
def empty: This
Также рекомендуется переопределить методы foreach и size для повышения эффективности.
trait MultiMap[A, B] extends Map[A, Set[B]]
Интерфейс для изменяемых карт, которым может быть присвоено несколько значений одному ключу.
Этот класс обычно используется как миксин. Он превращает карты, которые отображают A в объекты Set[B], в многозначные карты, которые отображают A в объекты B.
// first import all necessary types from package `collection.mutable`
import collection.mutable.{ HashMap, MultiMap, Set }
// to create a `MultiMap` the easiest way is to mixin it into a normal
// `Map` instance
val mm = new HashMap[Int, Set[String]] with MultiMap[Int, String]
// to add key-value pairs to a multimap it is important to use
// the method `addBinding` because standard methods like `+` will
// overwrite the complete key-value pair instead of adding the
// value to the existing key
mm.addBinding(1, "a")
mm.addBinding(2, "b")
mm.addBinding(1, "c")
// mm now contains `Map(2 -> Set(b), 1 -> Set(c, a))`
// to check if the multimap contains a value there is method
// `entryExists`, which allows to traverse the including set
mm.entryExists(1, _ == "a") == true
mm.entryExists(1, _ == "b") == false
mm.entryExists(2, _ == "b") == true
// to remove a previous added value there is the method `removeBinding`
mm.removeBinding(1, "a")
mm.entryExists(1, _ == "a") == false
class MutableList[A] extends AbstractSeq[A] with LinearSeq[A] with LinearSeqOptimized[A, MutableList[A]] with GenericTraversableTemplate[A, MutableList] with Builder[A, MutableList[A]] with Serializable
Этот класс используется внутри для представления изменяемых списков. Он является основой для реализации класса Queue.
- Annotations
- @SerialVersionUID()
- Since
1
class OpenHashMap[Key, Value] extends AbstractMap[Key, Value] with Map[Key, Value] with MapLike[Key, Value, OpenHashMap[Key, Value]]
Изменяемый хеш-мап, основанный на схеме открытого хеширования. Точная схема не определена, но она должна приложить разумные усилия, чтобы гарантировать, что вставка с последовательными кодами хеша не подвергается ненужной штрафам. В частности, сопоставления последовательных целочисленных ключей должны работать без значительной потери производительности.
- Key
тип ключей в этой карте.
- Value
тип значений в этой карте.
- Since
2.7
sealed class PriorityQueue[A] extends AbstractIterable[A] with Iterable[A] with GenericOrderedTraversableTemplate[A, PriorityQueue] with IterableLike[A, PriorityQueue[A]] with Growable[A] with Builder[A, PriorityQueue[A]] with Serializable with scala.Cloneable
Этот класс реализует очереди с приоритетами, используя кучу. Для определения приоритета элементов типа A должно быть доступно неявное Ordering[A] при создании.
Если несколько элементов имеют одинаковый приоритет в порядке сортировки этой PriorityQueue, никакие гарантии не даются относительно порядка, в котором элементы возвращаются методами dequeue или dequeueAll. В частности, это означает, что этот класс не гарантирует поведение "первым вошел - первым вышел", которое может быть неправильно выведено из части "очередь" в имени этого класса.
Только методы dequeue и dequeueAll будут возвращать элементы в порядке приоритета (при удалении элементов из кучи). Стандартные методы коллекций, включая drop, iterator, и toString, будут удалять или проходить по куче в порядке, который кажется наиболее удобным.
Следовательно, вывод PriorityQueue не покажет порядок приоритетов элементов, хотя элемент с наивысшим приоритетом будет выведен первым. Чтобы вывести элементы в порядке, необходимо дублировать PriorityQueue (например, используя clone) и затем декьюить их:
- A
тип элементов в этой очереди с приоритетами.
- Since
1
val pq = collection.mutable.PriorityQueue(1, 2, 5, 3, 7) println(pq) // elements probably not in order println(pq.clone.dequeueAll) // prints Vector(7, 5, 3, 2, 1)
trait Publisher[Evt] extends AnyRef
Объекты Publisher[A,This] публикуют события типа A всем зарегистрированным подписчикам. При подписке подписчик может указать фильтр, который может использоваться для ограничения количества отправляемых подписчику событий. Подписчики могут приостановить свою подписку или возобновить приостановленную подписку. Класс Publisher обычно используется как миксин. Абстрактный тип Pub моделирует тип самого издателя.
- Evt
тип опубликованного события.
- Since
1
class Queue[A] extends MutableList[A] with LinearSeqOptimized[A, Queue[A]] with GenericTraversableTemplate[A, Queue] with Cloneable[Queue[A]] with Serializable
Объекты Queue реализуют структуры данных, которые позволяют вставлять и извлекать элементы в порядке очереди (FIFO).
- Since
1
- См. также
"Обзор библиотеки коллекций Scala" раздел по
Queuesдля получения дополнительной информации.
trait ResizableArray[A] extends IndexedSeq[A] with GenericTraversableTemplate[A, ResizableArray] with IndexedSeqOptimized[A, ResizableArray[A]]
Этот класс используется внутри для реализации структур данных, основанных на изменяемых массивах.
- A
тип элементов, содержащихся в этом изменяемом массиве.
- Since
1
trait ReusableBuilder[-Elem, +To] extends Builder[Elem, To]
ReusableBuilder — это маркерный трейт, указывающий, что Builder можно повторно использовать для построения более чем одной копии коллекции. В частности, вызов result за которым следует clear создаст коллекцию и сбросит состояние билдера, чтобы начать построение новой коллекции того же типа.
Подклассы должны реализовать это поведение и документировать любое другое поведение, отличающееся от стандартного использования ReusableBuilder (например, операции, которые определены после вызова result, или возможность получения различных снимков создаваемой коллекции).
- Elem
тип элементов, которые добавляются в билдер.
- To
тип коллекции, которая создаётся.
- Since
2.12
class RevertibleHistory[Evt <: Undoable, Pub] extends History[Evt, Pub] with Undoable with Serializable
Обратимая история — это History объект, поддерживающий операцию отмены. Переменная типа Evt ссылается на тип опубликованных событий, Pub обозначает тип издателя. Тип Pub обычно является подтипом Publisher.
- Evt
тип событий
- Pub
тип издателя
- Since
2.8
trait Seq[A] extends Iterable[A] with collection.Seq[A] with GenericTraversableTemplate[A, Seq] with SeqLike[A, Seq[A]]
Подтип collection.Seq, представляющий изменяемые последовательности.
Последовательности — это особые случаи итерируемых коллекций класса Iterable. В отличие от итерируемых объектов, последовательности всегда имеют определённый порядок элементов. Последовательности предоставляют метод apply для индексирования. Индексы варьируются от 0 до length последовательности. Последовательности поддерживают ряд методов для поиска вхождений элементов или подпоследовательностей, включая segmentLength, prefixLength, indexWhere, indexOf, lastIndexWhere, lastIndexOf, startsWith, endsWith, indexOfSlice.
Другой способ представить последовательность — это PartialFunction от Int значений к типу элементов последовательности. Метод isDefinedAt последовательности возвращает true для интервала от 0 до length.
К последовательностям можно получить доступ в обратном порядке их элементов, используя методы reverse и reverseIterator.
Последовательности имеют два основных подтипа, IndexedSeq и LinearSeq, которые предоставляют различные гарантии производительности. IndexedSeq обеспечивает быстрый произвольный доступ к элементам и быструю операцию length. LinearSeq обеспечивает быстрый доступ только к первому элементу через head, но также имеет быструю операцию tail.
Класс добавляет метод update к collection.Seq.
trait SeqLike[A, +This <: SeqLike[A, This] with Seq[A]] extends collection.SeqLike[A, This] with Cloneable[This] with Parallelizable[A, ParSeq[A]]
Шаблонный трайт для изменяемых последовательностей типа mutable.Seq[A].
- A
тип элементов множества
- This
тип самого множества.
trait Set[A] extends Iterable[A] with collection.Set[A] with GenericSetTemplate[A, Set] with SetLike[A, Set[A]]
Обобщённый трайт для изменяемых множеств.
Для реализации конкретного изменяемого множества необходимо предоставить реализации следующих методов:
def contains(elem: A): Boolean def iterator: Iterator[A] def += (elem: A): this.type def -= (elem: A): this.type
Если вы хотите, чтобы методы, такие как take, drop, filter возвращали тот же вид множества, вы также должны переопределить:
def empty: This
Также рекомендуется переопределить методы foreach и size для повышения эффективности.
- Since
1.0
class SetBuilder[A, Coll <: collection.Set[A] with collection.SetLike[A, Coll]] extends ReusableBuilder[A, Coll]
Канонический билдер для изменяемых множеств.
- A
Тип элементов, которые будут содержаться в этом множестве.
- Coll
Тип фактической коллекции, которую строит это множество.
- Since
2.8
trait SetLike[A, +This <: SetLike[A, This] with Set[A]] extends collection.SetLike[A, This] with Scriptable[A] with Builder[A, This] with Growable[A] with Shrinkable[A] with Cloneable[Set[A]] with Parallelizable[A, ParSet[A]]
Шаблонный трейт для изменяемых множеств типа mutable.Set[A].
Этот трейт предоставляет большинство операций над mutable.Set независимо от его представления. Обычно он наследуется конкретными реализациями множеств.
Для реализации конкретного изменяемого множества необходимо предоставить реализации следующих методов:
def contains(elem: A): Boolean def iterator: Iterator[A] def += (elem: A): this.type def -= (elem: A): this.type
Если вы хотите, чтобы методы, такие как take, drop, filter возвращали множество того же типа, необходимо также переопределить:
def empty: This
Также рекомендуется переопределить методы foreach и size для повышения эффективности.
- A
тип элементов множества
- This
тип самого множества.
- Since
2.8
trait SortedMap[A, B] extends Map[A, B] with collection.SortedMap[A, B] with MapLike[A, B, SortedMap[A, B]] with SortedMapLike[A, B, SortedMap[A, B]]
Изменяемый словарь, ключи которого отсортированы.
- A
тип ключей, содержащихся в этом отсортированном словаре.
- B
тип значений, связанных с ключами.
- Since
2.12
trait SortedSet[A] extends collection.SortedSet[A] with SortedSetLike[A, SortedSet[A]] with Set[A] with SetLike[A, SortedSet[A]]
final class StringBuilder extends AbstractSeq[Char] with CharSequence with IndexedSeq[Char] with StringLike[StringBuilder] with ReusableBuilder[Char, String] with Serializable
Строитель для изменяемой последовательности символов. Этот класс предоставляет API, в основном совместимый с java.lang.StringBuilder, за исключением случаев конфликта с API Scala Collections (например, метод reverse).
- Annotations
- @SerialVersionUID()
- Since
2.7
trait Subscriber[-Evt, -Pub] extends AnyRef
Объекты Subscriber[A, B] могут подписываться на события типа A , публикуемые объектом типа B . B обычно является подтипом scala.collection.mutable.Publisher.
- Since
1
trait Traversable[A] extends collection.Traversable[A] with GenericTraversableTemplate[A, Traversable] with TraversableLike[A, Traversable[A]] with Mutable
Трейт для обозримых коллекций, которые можно изменить.
Это базовый трейт всех видов изменяемых коллекций Scala. Он реализует общее поведение всех коллекций с помощью метода foreach с подписью:
def foreach[U](f: Elem => U): Unit
Классы коллекций, смешивающие этот трейт, предоставляют конкретный метод foreach , который перебирает все элементы, содержащиеся в коллекции, применяя к каждому заданную функцию. Они также должны предоставить метод newBuilder для создания строителя коллекций того же типа.
Класс коллекций может или не может иметь две характеристики: строгость и упорядоченность. Ни одна из них не представлена как тип.
Элементы строгой коллекции вычисляются до использования в качестве значений. В отличие от этого, элементы нестрогой коллекции могут быть вычислены после получения экземпляра коллекции. Типичный пример нестрогой коллекции — scala.collection.immutable.Stream. Более общий класс примеров — TraversableViews.
Если коллекция является экземпляром упорядоченного класса коллекций, перебор её элементов с помощью foreach всегда будет посещать элементы в том же порядке, даже при разных запусках программы. Если класс неупорядочен, foreach может посещать элементы в разных порядках при разных запусках (но сохранит порядок в одном запуске).
Типичный пример неупорядоченной коллекции — HashMap объектов. Порядок обхода хеш-таблиц зависит от хэш-кодов элементов, которые могут отличаться в разных запусках. В отличие от этого, LinkedHashMap является упорядоченным, поскольку метод foreach посещает элементы в порядке их вставки в HashMap.
sealed class TreeMap[A, B] extends AbstractSortedMap[A, B] with SortedMap[A, B] with MapLike[A, B, TreeMap[A, B]] with SortedMapLike[A, B, TreeMap[A, B]] with Serializable
Изменяемый сортированный массив, реализованный с использованием изменяемого красно-чёрного дерева в качестве базовой структуры данных.
- A
тип ключей, содержащихся в этом дереве.
- B
тип значений, связанных с ключами.
- Annotations
- @SerialVersionUID()
- Since
2.12
sealed class TreeSet[A] extends AbstractSortedSet[A] with SortedSet[A] with SetLike[A, TreeSet[A]] with SortedSetLike[A, TreeSet[A]] with Serializable
Изменяемый сортированный набор, реализованный с использованием изменяемого красно-чёрного дерева в качестве базовой структуры данных.
- A
тип ключей, содержащихся в этом наборе.
- Annotations
- @SerialVersionUID()
- Since
2.10
trait Undoable extends AnyRef
Классы, которые смешивают класс Undoable , предоставляют операцию undo , которая может быть использована для отмены последней операции.
- Since
1
sealed class UnrolledBuffer[T] extends AbstractBuffer[T] with Buffer[T] with BufferLike[T, UnrolledBuffer[T]] with GenericClassTagTraversableTemplate[T, UnrolledBuffer] with Builder[T, UnrolledBuffer[T]] with Serializable
Буфер, который хранит элементы в свёрнутом связанном списке.
Свёрнутые связанные списки хранят элементы в связанных массивах фиксированного размера.
Свёрнутые буферы сохраняют свойства локальности и низкой нагрузки памяти массивов-буферов, но предлагают гораздо более эффективное добавление элементов, так как они никогда не перераспределяют и не копируют внутренний массив.
Однако они обеспечивают сложность O(n/m) случайного доступа, где n количество элементов, а m размер блоков внутреннего массива.
Идеально подходит для использования, когда:
-
элементы добавляются в буфер, а затем все элементы просматриваются последовательнодва свёрнутых буфера должны быть конкатенированы (см.
concat)Лучше, чем односвязные списки для случайного доступа, но всё же следует избегать для такой цели.
- Annotations
- @SerialVersionUID()
class WeakHashMap[A, B] extends convert.Wrappers.JMapWrapper[A, B] with convert.Wrappers.JMapWrapperLike[A, B, WeakHashMap[A, B]]
Хеш-карта с ссылками на записи, которые слабо достижимы. Записи удаляются из этой карты, когда на ключ больше нет (сильной) ссылки. Этот класс оборачивает java.util.WeakHashMap.
- A
тип ключей, содержащихся в этой карте
- B
тип значений, связанных с ключами
- Since
2.8
- See also
«Обзор библиотеки коллекций Scala» раздел о
Weak Hash Mapsдля получения дополнительной информации.
abstract class WrappedArray[T] extends AbstractSeq[T] with IndexedSeq[T] with ArrayLike[T, WrappedArray[T]] with CustomParallelizable[T, ParArray[T]]
Класс, представляющий Array[T].
- T
тип элементов в этом обернутом массиве.
- Since
2.8
class WrappedArrayBuilder[A] extends ReusableBuilder[A, WrappedArray[A]]
Класс-билдер для массивов.
Этот билдер может быть повторно использован.
- A
тип элементов, которые могут быть добавлены в этот билдер.
- Since
2.8
trait BufferProxy[A] extends Buffer[A] with Proxy
Это простой класс-прокси для `scala.collection.mutable.Buffer`. Он наиболее полезен для динамического построения настраиваемых наборов абстракций с использованием композиции объектов и переадресации.
- A
тип элементов, содержащихся в буфере-прокси.
- Annotations
- @deprecated
- Устарело
(С версии 2.11.0) Проксирование устарело из-за отсутствия использования и поддержки на уровне компилятора
- Since
1
trait DefaultMapModel[A, B] extends Map[A, B]
Этот класс используется внутри. Он реализует мутабельный Map класс в терминах трех функций: findEntry, addEntry, и entries.
- Annotations
- @deprecated
- Устарело
(С версии 2.11.0) Этот трайт будет удален
- Since
1
class DoubleLinkedList[A] extends AbstractSeq[A] with LinearSeq[A] with GenericTraversableTemplate[A, DoubleLinkedList] with DoubleLinkedListLike[A, DoubleLinkedList[A]] with Serializable
Этот класс реализует двусвязные списки, где и голова (elem), и хвост (next) и ссылка на предыдущий узел (prev) являются мутабельными.
- A
тип элементов, содержащихся в этом двусвязном списке.
- Annotations
- @deprecated @SerialVersionUID()
- Устарело
(С версии 2.11.0) двусвязные списки низкого уровня устарели из-за особенностей интерфейса и неполных функций
- Since
1
- См. также
"Обзор библиотеки коллекций Scala" раздел о
Double Linked Listsдля получения дополнительной информации.
trait DoubleLinkedListLike[A, This <: Seq[A] with DoubleLinkedListLike[A, This]] extends SeqLike[A, This] with LinkedListLike[A, This]
Этот расширяемый класс может быть использован в качестве основы для реализации двусвязных списков. Переменная типа A относится к типу элементов списка, переменная типа This используется для моделирования типов самих списков.
Инвариант этой структуры данных заключается в том, что prev всегда является ссылкой на предыдущий узел в списке. Если this — первый узел списка, то prev будет null. Поле next устанавливается в this, если список пуст.
Примеры (стрелка вправо представляет next, стрелка влево представляет prev, _ представляет отсутствие значения):
Empty:
null <-- [ _ ] --,
[ ] <-`
Single element:
null <-- [ x ] --> [ _ ] --,
[ ] <-- [ ] <-`
More elements:
null <-- [ x ] --> [ y ] --> [ z ] --> [ _ ] --,
[ ] <-- [ ] <-- [ ] <-- [ ] <-`
- A
тип элементов, содержащихся в двусвязном списке
- This
тип фактического списка, содержащего элементы
- Аннотации
- @deprecated
- Устарело
(С версии 2.11.0) списки низкого уровня устарели из-за особенностей интерфейса и неполных функций
- С версии
2.8
class ImmutableMapAdaptor[A, B] extends AbstractMap[A, B] with Map[A, B] with Serializable
Этот класс может быть использован как адаптер для создания изменяемых карт из неизменяемых реализаций карт. Только метод empty должен быть переопределён, если исходная неизменяемая карта не пуста. empty должен возвращать представление пустой карты.
- Аннотации
- @deprecated
- Устарело
(С версии 2.11.0) адаптеры по своей природе ненадежны и склонны к проблемам производительности
- С версии
1
class ImmutableSetAdaptor[A] extends AbstractSet[A] with Set[A] with Serializable
Этот класс может быть использован как адаптер для создания изменяемых множеств из неизменяемых реализаций множеств. Только метод empty должен быть переопределён, если исходное неизменяемое множество не пусто. empty должен возвращать представление пустого множества.
- Аннотации
- @deprecated
- Устарело
(С версии 2.11.0) адаптеры по своей природе ненадежны и склонны к проблемам производительности
- С версии
1
class LinkedList[A] extends AbstractSeq[A] with LinearSeq[A] with GenericTraversableTemplate[A, LinkedList] with LinkedListLike[A, LinkedList[A]] with Serializable
Более традиционный/примитивный стиль списка, где "список" также является ссылкой "голова". Ссылки могут быть созданы и изменены вручную, хотя использование API, когда это возможно, рекомендуется.
Опасность прямого изменения next:
scala> val b = LinkedList(1) b: scala.collection.mutable.LinkedList[Int] = LinkedList(1) scala> b.next = null scala> println(b) java.lang.NullPointerException
Если список пуст, next должен быть установлен в this. Последний узел в каждом изменяемом связанном списке пуст.
Примеры (_ обозначает отсутствие значения):
Empty:
[ _ ] --,
[ ] <-`
Single element:
[ x ] --> [ _ ] --,
[ ] <-`
More elements:
[ x ] --> [ y ] --> [ z ] --> [ _ ] --,
[ ] <-`
- A
тип элементов, содержащихся в этом связанном списке.
- Аннотации
- @SerialVersionUID() @deprecated
- Устарело
(С версии 2.11.0) списки низкого уровня устарели из-за особенностей интерфейса и неполных функций
- С версии
1
- См. также
Обзор библиотеки коллекций Scala раздел о
Linked Listsдля получения дополнительной информации.
trait LinkedListLike[A, This <: Seq[A] with LinkedListLike[A, This]] extends SeqLike[A, This]
Этот расширяемый класс может быть использован в качестве основы для реализации связанного списка. Переменная типа A относится к типу элементов списка, переменная типа This используется для моделирования типов самих списков.
Если список пуст, next должен быть установлен в this. Последний узел в каждом изменяемом связанном списке пуст.
Примеры (_ обозначает отсутствие значения):
Empty:
[ _ ] --,
[ ] <-`
Single element:
[ x ] --> [ _ ] --,
[ ] <-`
More elements:
[ x ] --> [ y ] --> [ z ] --> [ _ ] --,
[ ] <-`
- A
тип элементов, содержащихся в связанном списке
- This
тип фактического списка, содержащего элементы
- Аннотации
- @deprecated
- Устарело
(С версии 2.11.0) списки низкого уровня устарели из-за особенностей интерфейса и неполных функций
- С версии
2.8
трайт MapProxy[A, B] extends Map[A, B] with MapProxyLike[A, B, Map[A, B]]
Этот трайт реализует прокси для scala.collection.mutable.Map.
Он наиболее полезен для динамического сборки настраиваемых абстракций карт с использованием композиции объектов и перенаправления.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) проксирование устарело из-за отсутствия использования и поддержки на уровне компилятора
- С тех пор
1
трайт ObservableBuffer[A] extends Buffer[A] with Publisher[Message[A] with Undoable]
Этот класс обычно используется как миксин. Он добавляет механизм подписки к классу Buffer, в который этот абстрактный класс включён. Класс ObservableBuffer публикует события типа Message.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) наблюдаемые устарели из-за устаревания скриптинга
- С тех пор
1
трайт ObservableMap[A, B] extends Map[A, B] with Publisher[Message[(A, B)] with Undoable]
Этот класс обычно используется как миксин. Он добавляет механизм подписки к классу Map, в который этот абстрактный класс включён. Класс ObservableMap публикует события типа Message.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) наблюдаемые устарели из-за устаревания скриптинга
- С тех пор
1
трайт ObservableSet[A] extends Set[A] with Publisher[Message[A] with Undoable]
Этот класс обычно используется как миксин. Он добавляет механизм подписки к классу Set, в который этот абстрактный класс включён. Класс ObservableSet публикует события типа Message.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) наблюдаемые устарели из-за устаревания скриптинга
- С тех пор
1
запечатанный абстрактный класс PriorityQueueProxy[A] extends PriorityQueue[A] with Proxy
Этот класс служит прокси для очередей с приоритетами. Элементы очереди должны быть упорядочены в терминах класса Ordered[T].
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) проксирование устарело из-за отсутствия использования и поддержки на уровне компилятора
- С тех пор
1
трайт QueueProxy[A] extends Queue[A] with Proxy
Объекты Queue реализуют структуры данных, которые позволяют вставлять и извлекать элементы в порядке очереди (FIFO).
- A
тип элементов в этом прокси очереди.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) проксирование устарело из-за отсутствия использования и поддержки на уровне компилятора
- С тех пор
1
трайт SetProxy[A] extends Set[A] with SetProxyLike[A, Set[A]]
Это простой класс-обёртка для scala.collection.mutable.Set. Он наиболее полезен для динамического сборки настраиваемых абстракций множеств с использованием композиции объектов и перенаправления.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) проксирование устарело из-за отсутствия использования и поддержки на уровне компилятора
- С тех пор
1
класс Stack[A] extends AbstractSeq[A] with Seq[A] with SeqLike[A, Stack[A]] with GenericTraversableTemplate[A, Stack] with Cloneable[Stack[A]] with Serializable
Стек реализует структуру данных, которая позволяет хранить и извлекать объекты в порядке LIFO (последним вошел — первым вышел).
- A
тип элементов, содержащихся в этом стеке.
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.12.0) Stack — это неэлегантный и потенциально плохо работающий оболочка вокруг List. Используйте List, присвоенный переменной вместо этого.
- С
1
- См. также
"Обзор библиотеки коллекций Scala" раздел о
Stacksдля получения дополнительной информации.
тракт StackProxy[A] extends Stack[A] with Proxy
Стек реализует структуру данных, которая позволяет хранить и извлекать объекты в порядке LIFO (последним вошел — первым вышел).
- A
тип элементов в этом прокси-стеке.
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.11.0) Прямое использование прокси устарело из-за отсутствия использования и поддержки на уровне компилятора.
- С
1
тракт SynchronizedBuffer[A] extends Buffer[A]
Этот класс должен использоваться как миксин. Он синхронизирует Buffer методы класса, в который он добавлен.
- A
тип элементов, содержащихся в этом буфере.
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.11.0) Синхронизация через тракты устарела, так как она в своей сути ненадежна. Рассмотрите java.util.concurrent.ConcurrentLinkedQueue в качестве альтернативы.
- С
1
тракт SynchronizedMap[A, B] extends Map[A, B]
Этот класс должен использоваться как миксин. Он синхронизирует Map функции класса, в который он добавлен.
- A
тип ключей, содержащихся в этом словаре.
- B
тип значений, связанных с ключами.
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.11.0) Синхронизация через тракты устарела, так как она в своей сути ненадежна. Рассмотрите java.util.concurrent.ConcurrentHashMap в качестве альтернативы.
- С
1
закрытый класс SynchronizedPriorityQueue[A] extends PriorityQueue[A]
Этот класс реализует синхронизированные очереди с приоритетами, используя двоичную кучу. Элементы очереди должны быть упорядочены по отношению к Ordered[T] классу.
- A
тип элементов, содержащихся в этой синхронизированной очереди с приоритетами
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.11.0) Всеобъемлющая синхронизация через выборочное переопределение методов в своей сути ненадежна. Рассмотрите java.util.concurrent.ConcurrentSkipListSet в качестве альтернативы.
- С
1
класс SynchronizedQueue[A] extends Queue[A]
Это синхронизированная версия Queue[T] класса. Он реализует структуру данных, которая позволяет вставлять и извлекать элементы в порядке FIFO (первым вошел — первым вышел).
- A
тип элементов, содержащихся в этой синхронизированной очереди.
- Аннотации
- @deprecated
- Устаревшее
(С версии 2.11.0) Синхронизация через выборочное переопределение методов в своей сути ненадежна. Рассмотрите java.util.concurrent.ConcurrentLinkedQueue в качестве альтернативы.
- С
1
тракт SynchronizedSet[A] extends Set[A]
Этот класс следует использовать в качестве миксина. Он синхронизирует функции Set класса, в который он смешан.
- A
тип элементов, содержащихся в этом синхронизированном наборе.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) Синхронизация через трайты устарела, так как она изначально ненадежна. Рассмотрите java.util.concurrent.ConcurrentHashMap[A,Unit] в качестве альтернативы.
- Начиная с
1
класс SynchronizedStack[A] extends Stack[A]
Это синхронизированная версия класса Stack[T]. Она реализует структуру данных, которая позволяет хранить и извлекать объекты в порядке «последний вошел — первый вышел» (LIFO).
- A
тип элементов, содержащихся в этом стеке.
- Аннотации
- @deprecated
- Устарело
(Начиная с версии 2.11.0) Синхронизация через выборочную переопределяемость методов изначально ненадежна. Рассмотрите java.util.concurrent.LinkedBlockingDequeue вместо этого.
- Начиная с
1
Члены-значения
объект AnyRefMap расширяет Serializable
объект ArrayBuffer расширяет SeqFactory[ArrayBuffer] с Serializable
Объект-фабрика для класса ArrayBuffer.
Этот объект предоставляет набор операций для создания значений . ArrayBuffer
объект ArrayBuilder расширяет Serializable
Дополнительный объект для билдеров массивов.
- Since
2.8
объект ArrayOps
Дополнительный объект для ArrayOps.
- Since
2.8
объект ArraySeq расширяет SeqFactory[ArraySeq] с Serializable
объект ArrayStack расширяет SeqFactory[ArrayStack] с Serializable
Объект-фабрика для класса ArrayStack.
Этот объект предоставляет набор операций для создания значений . ArrayStack
объект BitSet расширяет BitSetFactory[BitSet] с Serializable
объект Buffer расширяет SeqFactory[Buffer]
объект HashMap расширяет MutableMapFactory[HashMap] с Serializable
объект HashSet расширяет MutableSetFactory[HashSet] с Serializable
объект IndexedSeq расширяет SeqFactory[IndexedSeq]
Этот объект предоставляет набор операций для создания значений . Текущая реализация по умолчанию mutable.IndexedSeqmutable.IndexedSeq — ArrayBuffer.
объект IndexedSeqView
Объект, содержащий необходимые неявные определения для работы SeqView. К клиентам его определения обычно не обращаются напрямую.
Обратите внимание, что фабрики canBuildFrom возвращают SeqView, а не IndexedSeqView. Это сделано намеренно, так как не все операции возвращают снова mutable.IndexedSeqView. Например, map возвращает только SeqView, что отражает неспособность map сохранить указатель на исходную индексированную последовательность.
объект Iterable расширяет GenTraversableFactory[Iterable] с TraversableFactory[Iterable]
Этот объект предоставляет набор операций для создания значений . Текущая реализация по умолчанию mutable.Iterablemutable.Iterable — ArrayBuffer.
объект LinearSeq расширяет SeqFactory[LinearSeq]
Этот объект предоставляет набор операций для создания значений . Текущая реализация по умолчанию mutable.LinearSeqmutable.LinearSeq — MutableList.
объект LinkedHashMap расширяет MutableMapFactory[LinkedHashMap] с Serializable
объект LinkedHashSet расширяет MutableSetFactory[LinkedHashSet] с Serializable
объект ListBuffer расширяет SeqFactory[ListBuffer] с Serializable
объект ListMap extends MutableMapFactory[ListMap] with Serializable
объект LongMap extends Serializable
объект Map extends MutableMapFactory[Map]
Этот объект предоставляет набор операций, необходимых для создания значений . Текущая реализация по умолчанию mutable.Mapmutable.Map является HashMap.
объект MutableList extends SeqFactory[MutableList] with Serializable
объект OpenHashMap
объект PriorityQueue extends OrderedTraversableFactory[PriorityQueue] with Serializable
объект Queue extends SeqFactory[Queue] with Serializable
объект ResizableArray extends SeqFactory[ResizableArray]
объект Seq extends SeqFactory[Seq]
Этот объект предоставляет набор операций для создания значений . Текущая реализация по умолчанию mutable.Seqmutable.Seq представляет собой ArrayBuffer.
объект Set extends MutableSetFactory[Set]
Этот объект предоставляет набор операций, необходимых для создания значений . Текущая реализация по умолчанию mutable.Setmutable.Set является HashSet.
объект SortedMap extends MutableSortedMapFactory[SortedMap]
объект SortedSet extends MutableSortedSetFactory[SortedSet]
объект Stack extends SeqFactory[Stack] with Serializable
Объект-фабрика для класса mutable.Stack.
Этот объект предоставляет набор операций для создания значений . mutable.Stack
объект StringBuilder extends Serializable
объект Traversable extends GenTraversableFactory[Traversable] with TraversableFactory[Traversable]
Этот объект предоставляет набор операций для создания значений . Текущая реализация по умолчанию mutable.Traversablemutable.Traversable является ArrayBuffer.
объект TreeMap extends MutableSortedMapFactory[TreeMap] with Serializable
объект TreeSet extends MutableSortedSetFactory[TreeSet] with Serializable
объект UnrolledBuffer extends ClassTagTraversableFactory[UnrolledBuffer] with Serializable
объект WeakHashMap extends MutableMapFactory[WeakHashMap] with Serializable
объект WrappedArray
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/collection/mutable/index.html
Этот класс реализует изменяемые отображения с ключами
AnyRef, основанные на хэш-таблице с открытым адресованием.Основные операции отображения по отдельным записям, включая
containsиget, обычно значительно быстрее сAnyRefMapпо сравнению с HashMap. Обратите внимание, что числа и символы не обрабатываются специально в AnyRefMap; используются только обычныеequalsиhashCodeв сравнениях.Методы, которые обходятся по отображению или перегенерируют его, включая
foreachиmap, в общем случае не быстрее, чем сHashMap. Однако методыforeachKey,foreachValue,mapValuesNow, иtransformValuesбыстрее альтернативных способов достижения той же функциональности.Отображения с открытым адресованием могут стать менее эффективными при поиске после многократного добавления/удаления элементов. Хотя
AnyRefMapделает попытку оставаться эффективными независимо, вызовrepackдля отображения, в котором больше не будут удаляться элементы, но который будет активно использоваться, может сэкономить как время, так и хранилище.Это отображение не предназначено для хранения более 229 записей (приблизительно 500 миллионов). Максимальная емкость — 230, но производительность будет резко ухудшаться по мере приближения к 230.