Spec-Zone.ru › Scala 3.1

Класс scala.collection.concurrent.TrieMap

Объект-компаньон • Исходный код

@SerialVersionUID(-5212455458703321708L)
final class TrieMap[K, V] extends AbstractMap[K, V] with Map[K, V] with MapOps[K, V, TrieMap, TrieMap[K, V]] with MapFactoryDefaults[K, V, TrieMap, Iterable] with DefaultSerializable

Конкурентная хэш-троечная карта (TrieMap) — это потокобезопасная, свободно-блокировочная реализация хэш-массивно-картированной троичной карты. Она используется для реализации абстракции конкурентной карты. Она обладает особенно масштабируемыми конкурентными операциями вставки и удаления и является эффективной с точки зрения памяти. Поддерживает атомарные, свободные от блокировок снифшоты O(1), используемые для реализации линеаризуемых свободно-блокировочных операций определения размера, итератора и очистки. Стоимость вычисления (ленивого) снифшота распределяется среди последующих обновлений, что делает вычисление снифшота масштабируемым по горизонтали.

Для подробностей см.: http://lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf

Суперайтейпы
29 типов
Трейт DefaultSerializable
Трейт Serializable
Трейт Map[K, V]
Класс AbstractMap[K, V]
Трейт Map[K, V]
Трейт MapOps[K, V, TrieMap, TrieMap[K, V]]
Трейт Shrinkable[K]
Трейт Builder[(K, V), TrieMap[K, V]]
Трейт Growable[(K, V)]
Трейт Clearable
Трейт Cloneable[TrieMap[K, V]]
Трейт Cloneable
Трейт Iterable[(K, V)]
Класс AbstractMap[K, V]
Трейт Map[K, V]
Трейт Equals
Трейт MapFactoryDefaults[K, V, TrieMap, Iterable]
Трейт MapOps[K, V, TrieMap, TrieMap[K, V]]
Трейт PartialFunction[K, V]
Трейт K => V
Класс AbstractIterable[(K, V)]
Трейт Iterable[(K, V)]
Трейт IterableFactoryDefaults[(K, V), Iterable]
Трейт IterableOps[(K, V), Iterable, TrieMap[K, V]]
Трейт IterableOnceOps[(K, V), Iterable, TrieMap[K, V]]
Трейт IterableOnce[(K, V)]
Класс Object
Трейт Matchable
Класс Any

Конструкторы

Исходный код
def this(hashf: Hashing[K], ef: Equiv[K])

Исходный код
def this()

Конкретные методы

Исходный код
def addOne(kv: (K, V)): TrieMap[K, V]

Исходный код
override def apply(k: K): V

Классы-определения MapOps -> Function1

Исходный код@tailrec
override def clear(): Unit

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

Исходный код
def computeHash(k: K): Int

Исходный код
def equality: Equiv[K]

Исходный код
def get(k: K): Option[V]

Исходный код
override def getOrElseUpdate(k: K, op: => V): V

Если указанный ключ ещё не находится в карте, вычисляет его значение с помощью заданного лямбда-выражения op и добавляет его в карту.

Если указанная функция отображения вызывает исключение, это исключение перебрасывается.

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

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

ключ, который нужно изменить

op

выражение, вычисляющее значение

Возвращает

ново добавленное значение

Классы-определения Map -> MapOps

Исходный код
def hashing: Hashing[K]

Исходный код
override def isEmpty: Boolean

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

Исходный код
def isReadOnly: Boolean

Исходный код
def iterator: Iterator[(K, V)]

Исходный код
override def keySet: Set[K]

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

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

Классы-определения MapOps -> Growable -> IterableOnce

Исходный код
override def mapFactory: MapFactory[TrieMap]

Классы-определения Map -> Map -> MapOps

Исходный код
def nonReadOnly: Boolean

Исходный код
override def put(key: K, value: V): Option[V]

Классы определений MapOps

Исходный код
def putIfAbsent(k: K, v: V): Option[V]

Исходный код@tailrec
def readOnlySnapshot(): Map[K, V]

Возвращает неизменяемое моментальное изображение (снэпшот) этого TrieMap. Эта операция выполняется без блокировок и является линеаризуемой.

Моментальное изображение обновляется лениво — в первый раз, когда к какому-либо элементу этого TrieMap обращаются, оно переписывается. Работа по созданию моментального изображения распределяется между последующими обновлениями и обращениями к этому TrieMap всеми потоками. Обратите внимание, что само моментальное изображение никогда не переписывается, в отличие от вызова метода snapshot, но полученное моментальное изображение нельзя изменить.

Этот метод используется другими методами, такими как size и iterator.

Исходный код
override def remove(k: K): Option[V]

Классы определений MapOps

Исходный код
def remove(k: K, v: V): Boolean

Исходный код
def replace(k: K, oldvalue: V, newvalue: V): Boolean

Исходный код
def replace(k: K, v: V): Option[V]

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

Классы определений IterableOnceOps

Исходный код@tailrec
def snapshot(): TrieMap[K, V]

Возвращает моментальное изображение (снэпшот) этого TrieMap. Эта операция выполняется без блокировок и является линеаризуемой.

Моментальное изображение обновляется лениво — в первый раз, когда к какому-либо элементу в моментальном изображении или этому TrieMap обращаются, они переписываются. Это означает, что работа по перестроению как моментального изображения, так и этого TrieMap распределяется между всеми потоками, выполняющими обновления или обращения после создания моментального изображения.

Исходный код
def string: String

Исходный код
def subtractOne(k: K): TrieMap[K, V]

Исходный код
override def update(k: K, v: V): Unit

Классы определений MapOps

Исходный код
override def values: Iterable[V]

Классы определений MapOps

Исходный код
override def view: MapView[K, V]

Классы определений MapOps -> IterableOps

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

Исходный код@inline
final def ++[B >: (K, V)](suffix: IterableOnce[B]): Iterable[B]

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

Унаследовано из IterableOps

Исходный код
def ++[V2 >: V](xs: IterableOnce[(K, V2)]): TrieMap[K, V2]

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

Унаследовано из MapOps

Исходный код@inline
final def ++=(xs: IterableOnce[(K, V)]): TrieMap[K, V]

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

Унаследовано из Growable

Исходный код@inline
final def +=(elem: (K, V)): TrieMap[K, V]

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

Унаследовано из Growable

Исходный код@inline
final def --=(xs: IterableOnce[K]): TrieMap[K, V]

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

Унаследовано из Shrinkable

Исходный код@inline
final def -=(elem: K): TrieMap[K, V]

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

Унаследовано из Shrinkable

Исходный код
def addAll(xs: IterableOnce[(K, V)]): TrieMap[K, V]

Добавляет все элементы, полученные из IterableOnce, в это изменяемое множество.

Параметры значений
xs

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

Возвращает

само изменяемое множество.

Унаследовано из Growable

Исходный код@inline
final def addString(b: StringBuilder): StringBuilder

Добавляет все элементы этого набора в строковый буфер. Записываемый текст состоит из строковых представлений (относительно метода toString) всех элементов этого набора без разделительной строки.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> val h = a.addString(b)
h: StringBuilder = 1234
Параметры значений
b

строковый буфер, в который добавляются элементы.

Возвращает

строковый буфер b, в который были добавлены элементы.

Унаследовано из IterableOnceOps

Исходный код@inline
final def addString(b: StringBuilder, sep: String): StringBuilder

Добавляет все элементы этого набора в строковый буфер с использованием разделительной строки. Записываемый текст состоит из строковых представлений (относительно метода toString) всех элементов этого набора, разделенных строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
Параметры значения
b

строка-построитель, в который добавляются элементы.

sep

строка-разделитель.

Возвращает

строка-построитель b, в который были добавлены элементы.

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

Источник
override def addString(sb: StringBuilder, start: String, sep: String, end: String): StringBuilder

Классы-предки MapOps -> IterableOnceOps
Унаследовано от MapOps

Источник
def andThen[C](k: PartialFunction[V, C]): PartialFunction[K, C]

Компонует данную частичную функцию с другой частичной функцией, которая применяется к результатам данной частичной функции.

Обратите внимание, что вызов isDefinedAt для результирующей частичной функции может применить первую частичную функцию и выполнить ее побочное действие. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.

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

тип результата функции преобразования.

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

функция преобразования

Возвращает

частичная функция с областью определения данной частичной функции, суженной другой частичной функцией, которая сопоставляет аргументы x в k(this(x)).

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

Источник
override def andThen[C](k: V => C): PartialFunction[K, C]

Компонует данную частичную функцию с функцией преобразования, которая применяется к результатам данной частичной функции.

Если тип времени выполнения функции является PartialFunction, то используется другой метод andThen (обратите внимание на его предостережения).

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

тип результата функции преобразования.

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

функция преобразования

Возвращает

частичная функция с областью определения данной частичной функции, возможно суженной указанной функцией, которая сопоставляет аргументы x в k(this(x)).

Классы-предки PartialFunction -> Function1
Унаследовано от PartialFunction

Источник
override def applyOrElse[K1 <: K, V1 >: V](x: K1, default: K1 => V1): V1

Классы-предки MapOps -> PartialFunction
Унаследовано от MapOps

Источник
def canEqual(that: Any): Boolean

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

Источник
override def clone(): TrieMap[K, V]

Классы-предки MapOps -> Cloneable -> Object
Унаследовано от MapOps

Источник
def collect[B](pf: PartialFunction[(K, V), B]): Iterable[B]

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

Источник
def collect[K2, V2](pf: PartialFunction[(K, V), (K2, V2)]): TrieMap[K2, V2]

Создает новую коллекцию, применяя частичную функцию ко всем элементам этой карты, для которых функция определена.

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

тип ключа возвращаемой карты.

V2

тип значения возвращаемой карты.

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

частичная функция, которая фильтрует и отображает карту.

Возвращает

новая карта, полученная в результате применения заданной частичной функции pf к каждому элементу, для которого она определена, и сбора результатов. Порядок элементов сохраняется.

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

Источник
def collectFirst[B](pf: PartialFunction[(K, V), B]): Option[B]

Находит первый элемент коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.

Примечание: может не завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если только тип базовой коллекции не является упорядоченным.

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

частичная функция

Возвращает

значение типа option, содержащее результат применения pf к первому значению, для которого он определён, или None если такого значения нет.

Пример

Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)

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

Источник
def compose[R](k: PartialFunction[R, K]): PartialFunction[R, V]

Компонует другую частичную функцию k с этой частичной функцией, так что эта частичная функция применяется к результатам k.

Обратите внимание, что вызов isDefinedAt для результирующей частичной функции может применить первую частичную функцию и выполнить ее побочное действие. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.

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

тип параметра функции преобразования.

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

функция преобразования

Возвращает

частичная функция с областью определения другой частичной функции, суженной данной частичной функцией, которая сопоставляет аргументы x в this(k(x)).

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

Источник@unspecialized
def compose[A](g: A => K): A => V

Компонует две функции Function1 в новую Function1, применяя данную функцию последней.

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

тип, к которому может быть применена функция g

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

функция A => T1

Возвращает

новая функция f такая, что f(x) == apply(g(x))

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

Источник
def concat[B >: (K, V)](suffix: IterableOnce[B]): Iterable[B]

Возвращает новую итерируемую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов итерируемой коллекции — это наиболее специфический суперкласс, охватывающий типы элементов двух операндов.

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

тип элементов возвращаемой коллекции.

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

объект для добавления.

Возвращает

новая итерируемая коллекция, содержащая все элементы этой итерируемой коллекции, за которыми следуют все элементы suffix.

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

Исходный код
def concat[V2 >: V](suffix: IterableOnce[(K, V2)]): TrieMap[K, V2]

Возвращает новую карту, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов карты — это наиболее специфический суперкласс, охватывающий типы элементов двух операндов.

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

объект для добавления.

Возвращает

новая карта, содержащая все элементы этой карты, за которыми следуют все элементы suffix.

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

Исходный код
def contains(key: K): Boolean

Проверяет, содержит ли эта карта привязку для ключа.

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

ключ

Возвращает

true если для key существует привязка в этой карте, false в противном случае.

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

Исходный код
def copyToArray[B >: (K, V)](xs: Array[B], start: Int, len: Int): Int

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет указанный массив xs начиная с индекса start не более чем len элементами этой коллекции.

Копирование прекращается, когда скопированы все элементы этой коллекции, или достигнут конец массива, или скопировано len элементов.

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

тип элементов массива.

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

максимальное количество копируемых элементов.

start

начальный индекс xs.

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Переиспользование: после вызова этого метода нужно отказаться от итератора, на котором он был вызван. Использование итератора после этого неопределенно и может измениться.

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

Исходный код@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: (K, V)](xs: Array[B], start: Int): Int

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет указанный массив xs начиная с индекса start значениями этой коллекции.

Копирование прекращается, когда скопированы все элементы этой коллекции, или достигнут конец массива.

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

тип элементов массива.

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

начальный индекс xs.

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Переиспользование: после вызова этого метода нужно отказаться от итератора, на котором он был вызван. Использование итератора после этого неопределенно и может измениться.

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

Исходный код@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: (K, V)](xs: Array[B]): Int

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start значениями из этого набора.

Копирование прекратится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.

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

тип элементов массива.

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

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Повторное использование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Его использование является неопределенным и может измениться.

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

Источник
def corresponds[B](that: IterableOnce[B])(p: ((K, V), B) => Boolean): Boolean

Проверяет, соответствует ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя предикату проверки.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

тип элементов that

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

предикат проверки, который связывает элементы обоих коллекций

that

другая коллекция

Возвращает

true если обе коллекции имеют одинаковую длину, и p(x, y) равно true для всех соответствующих элементов x этого итератора и y that, в противном случае false

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

Источник
def count(p: (K, V) => Boolean): Int

Подсчитывает количество элементов в коллекции, удовлетворяющих предикату.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

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

Возвращает

количество элементов, удовлетворяющих предикату p.

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

Источник@throws(scala.throws.$lessinit$greater$default$1[scala.NoSuchElementException])
def default(key: K): V

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

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

указанное значение ключа, для которого отсутствует привязка.

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

Источник
def drop(n: Int): TrieMap[K, V]

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

Источник
def dropRight(n: Int): TrieMap[K, V]

Выбирает все элементы, кроме последних n.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не является упорядоченным.

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

количество элементов, которые нужно удалить из этого итерируемого набора.

Возвращает

итерируемый набор, состоящий из всех элементов этого итерируемого набора, кроме последних n элементов, или пустой итерируемый набор, если в этом итерируемом наборе меньше, чем n элементов. Если n отрицательно, не удалять ни одного элемента.

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

Источник
def dropWhile(p: (K, V) => Boolean): TrieMap[K, V]

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

Источник
def elementWise: ElementWiseExtractor[K, V]

Возвращает объект извлекателя с методом unapplySeq, который извлекает каждый элемент данных последовательности.

Пример
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
  case firstChar.unlift.elementWise(c0, c1, c2) =>
    println(s"$c0, $c1, $c2") // Output: f, b, b
}
Унаследовано от PartialFunction

Источник
override def empty: TrieMap[K, V]

Классы определения MapFactoryDefaults -> IterableOps
Унаследовано от MapFactoryDefaults

Источник
override def equals(o: Any): Boolean

Равенство карт реализуется с помощью метода поиска get. Этот метод возвращает true если

  • аргумент o является Map,

  • две карты имеют одинаковый размер, и

  • для каждой (key, value) пары в этой карте, other.get(key) == Some(value).

Реализация equals проверяет метод canEqual, поэтому подклассы Map могут сузить равенство до определённых типов карт. Реализации Map в стандартной библиотеке могут быть сравнены, их методы canEqual возвращают true.

Примечание: метод equals учитывает законы равенства (симметрия, транзитивность) только в том случае, если две карты используют одну и ту же функцию эквивалентности ключей в своей операции поиска. Например, операция эквивалентности ключей в scala.collection.immutable.TreeMap определяется его упорядочением. Сравнение TreeMap с HashMap приводит к неожиданным результатам, если ordering.equiv(k1, k2) (используемая для поиска в TreeMap) отличается от k1 == k2 (используемой для поиска в HashMap).

scala> import scala.collection.immutable._
scala> val ord: Ordering[String] = _ compareToIgnoreCase _

scala> TreeMap("A" -> 1)(ord) == HashMap("a" -> 1)
val res0: Boolean = false

scala> HashMap("a" -> 1) == TreeMap("A" -> 1)(ord)
val res1: Boolean = true
Параметры значения
o

Карта, с которой сравнивается эта карта

Возвращает

true если две карты равны в соответствии с описанием

Классы определения Map -> Equals -> Any
Унаследовано от Map

Источник
def exists(p: (K, V) => Boolean): Boolean

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

Примечание: может не завершиться для наборов бесконечного размера.

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

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

Возвращает

true если заданный предикат p удовлетворяется хотя бы одним элементом этого набора, в противном случае false

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

Источник
def filter(pred: (K, V) => Boolean): TrieMap[K, V]

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

Источник
def filterInPlace(p: (K, V) => Boolean): TrieMap[K, V]

Оставляет только те отображения, для которых предикат p возвращает true.

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

предикат проверки

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

Источник
def filterNot(pred: (K, V) => Boolean): TrieMap[K, V]

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

Источник
def find(p: (K, V) => Boolean): Option[(K, V)]

Находит первый элемент набора, удовлетворяющий предикату, если таковой есть.

Примечание: может не завершиться для наборов бесконечного размера.

Примечание: может возвращать разные результаты при разных запусках, если тип основного набора не упорядочен.

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

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

Возвращает

значение Option, содержащее первый элемент набора, удовлетворяющий p, или None если таковой не существует.

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

Источник
def flatMap[B](f: (K, V) => IterableOnce[B]): Iterable[B]

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

Источник
def flatMap[K2, V2](f: (K, V) => IterableOnce[(K2, V2)]): TrieMap[K2, V2]

Создаёт новую карту, применяя функцию ко всем элементам этой карты и используя элементы полученных наборов.

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

функция, применяемая к каждому элементу.

Возвращает

новая карта, полученная путём применения заданной функции, принимающей набор f, к каждому элементу этой карты и конкатенацией результатов.

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

Источник
def flatten[B](implicit asIterable: (K, V) => IterableOnce[B]): Iterable[B]

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

Источник
def fold[A1 >: (K, V)](z: A1)(op: (A1, A1) => A1): A1

Складывает элементы этого набора с помощью указанного ассоциативного бинарного оператора. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективных порядков обхода.

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

Примечание: не завершится для наборов бесконечного размера.

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

параметр типа для бинарного оператора, сверхтип A.

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

бинарный оператор, который должен быть ассоциативным.

z

нейтральный элемент для операции fold; может быть добавлен к результату произвольное число раз и не должен изменять результат (например, Nil для конкатенации списков, 0 для сложения или 1 для умножения).

Возвращает

результат применения оператора fold op между всеми элементами и z, или z если этот набор пустой.

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

Source
def foldLeft[B](z: B)(op: (B, (K, V)) => B): B

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

Примечание: не будет завершаться для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этого набора, слева направо с начальным значением z слева: op(...op(z, x1), x2, ..., xn) где x1, ..., xn — элементы этого набора. Возвращает z если этот набор пуст.

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

Source
def foldRight[B](z: B)(op: ((K, V), B) => B): B

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

Примечание: не будет завершаться для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этого набора, справа налево с начальным значением z справа: op(x1, op(x2, ... op(xn, z)...)) где x1, ..., xn — элементы этого набора. Возвращает z если этот набор пуст.

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

Source
def forall(p: (K, V) => Boolean): Boolean

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

Примечание: может не завершаться для наборов бесконечного размера.

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

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

Возвращает

true если этот набор пуст или заданный предикат p выполняется для всех элементов этого набора, в противном случае false.

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

Source
def foreach[U](f: (K, V) => U): Unit

Применяет f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.

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

Source
def foreachEntry[U](f: (K, V) => U): Unit

Применяет f к каждой паре ключ/значение для её побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.

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

Source
override protected def fromSpecific(coll: IterableOnce[(K, V)]): TrieMap[K, V]

Классы определения MapFactoryDefaults -> IterableOps
Унаследовано от MapFactoryDefaults

Source
def getOrElse[V1 >: V](key: K, default: => V1): V1

Возвращает значение, связанное с ключом, или значение по умолчанию, если ключ не содержится в карте.

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

тип результата вычисления по умолчанию.

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

вычисление, которое возвращает значение по умолчанию в случае, если в карте нет привязки для key.

key

ключ.

Возвращаемое значение

значение, связанное с key, если оно существует, в противном случае результат вычисления default.

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

Источник
def groupBy[K](f: (K, V) => K): Map[K, TrieMap[K, V]]

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией дискриминации.

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

тип ключей, возвращаемых функцией дискриминации.

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

функция дискриминации.

Возвращаемое значение

Карта, где ключи сопоставлены с итерируемыми коллекциями, при этом выполняется следующее инвариантное свойство:

(xs groupBy f)(k) = xs filter (x => f(x) == k)

То есть, каждый ключ k сопоставлен с итерируемой коллекцией тех элементов x, для которых f(x) равно k.

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

Источник
def groupMap[K, B](key: (K, V) => K)(f: (K, V) => B): Map[K, Iterable[B]]

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией дискриминации key. Каждый элемент в группе преобразуется в значение типа B с помощью функции value.

Эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.

case class User(name: String, age: Int)

def namesByAge(users: Seq[User]): Map[Int, Seq[String]] =
  users.groupMap(_.age)(_.name)

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

тип значений, возвращаемых функцией преобразования

K

тип ключей, возвращаемых функцией дискриминации

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

функция преобразования элементов

key

функция дискриминации

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

Источник
def groupMapReduce[K, B](key: (K, V) => K)(f: (K, V) => B)(reduce: (B, B) => B): Map[K, B]

Разделяет эту итерируемую коллекцию на карту в соответствии с функцией дискриминации key. Все значения, имеющие одинаковую функцию дискриминации, затем преобразуются функцией f и затем сводятся к одному значению функцией reduce.

Эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.

def occurrences[A](as: Seq[A]): Map[A, Int] =
  as.groupMapReduce(identity)(_ => 1)(_ + _)

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

Источник
def grouped(size: Int): Iterator[TrieMap[K, V]]

Разделяет элементы на итерируемые коллекции фиксированного размера.

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

количество элементов в группе

Возвращаемое значение

Итератор, генерирующий итерируемые коллекции размером size, за исключением последней, которая может быть меньше размера size, если элементы не делятся на размер группы без остатка.

См. также

scala.collection.Iterator, метод grouped

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

Источник
override def hashCode(): Int

Definition Classes Map -> Any
Inherited from Map

Source
def head: (K, V)

Выбирает первый элемент этого итерируемого набора.

Примечание: могут быть получены разные результаты при разных запусках, если тип базовой коллекции не является упорядоченным.

Returns

первый элемент этого итерируемого набора.

Throws
NoSuchElementException

если итерируемый набор пуст.

Inherited from IterableOps

Source
def headOption: Option[(K, V)]

Возвращает первый элемент, если он существует.

Примечание: могут быть получены разные результаты при разных запусках, если тип базовой коллекции не является упорядоченным.

Returns

первый элемент этого итерируемого набора, если он не пустой, None если он пустой.

Inherited from IterableOps

Source
def init: TrieMap[K, V]

Часть коллекции без последнего элемента.

Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.

Inherited from IterableOps

Source
def inits: Iterator[TrieMap[K, V]]

Итерирует по начальным частям (без последнего элемента) этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым набором. Промежуточные значения — результаты последовательных применений init.

Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.

Returns

итератор по всем начальным частям этого итерируемого набора

Example

List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)

Inherited from IterableOps

Source
def isDefinedAt(key: K): Boolean

Проверяет, содержит ли карта связывание для ключа. Этот метод, реализующий абстрактный метод в трайте PartialFunction, эквивалентен contains.

Value parameters
key

ключ

Returns

true если для key существует связывание в этой карте, false в противном случае.

Inherited from MapOps

Source
override def isTraversableAgain: Boolean

Definition Classes IterableOps -> IterableOnceOps
Inherited from IterableOps

Source
override def iterableFactory: IterableFactory[Iterable]

Definition Classes Iterable -> Iterable -> IterableOps
Inherited from Iterable

Source
def keyStepper[S <: Stepper[_]](implicit shape: StepperShape[K, S]): S

Возвращает Stepper для ключей этой карты. См. метод stepper.

Inherited from MapOps

Source
def keys: Iterable[K]

Собраны все ключи этой карты в итерируемом наборе.

Returns

ключи этой карты в виде итерируемого набора.

Inherited from MapOps

Source
def keysIterator: Iterator[K]

Создаёт итератор для всех ключей.

Returns

итератор по всем ключам.

Inherited from MapOps

Source
def last: (K, V)

Выбирает последний элемент.

Примечание: могут быть получены разные результаты при разных запусках, если тип базовой коллекции не является упорядоченным.

Returns

Последний элемент этого итерируемого набора.

Throws
NoSuchElementException

Если итерируемый набор пустой.

Inherited from IterableOps

Source
def lastOption: Option[(K, V)]

Возвращает последний элемент, если он существует.

Примечание: могут быть получены разные результаты при разных запусках, если тип базовой коллекции не является упорядоченным.

Returns

последний элемент этого итерируемого набора, если он не пустой, None если он пустой.

Inherited from IterableOps

Source
def lazyZip[B](that: Iterable[B]): LazyZip2[(K, V), B, TrieMap[K, V]]

Аналогично zip , но элементы каждой коллекции не потребляются до вызова строгой операции над возвращаемым LazyZip2 декоратором.

Вызовы lazyZip могут быть объединены для поддержки более высоких арностей (до 4) без затрат на построение и деконструирование промежуточных кортежей.

val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Type parameters
B

тип второго элемента в каждой паре

Value parameters
that

итерируемый набор, предоставляющий второй элемент каждой пары

Returns

декоратор LazyZip2 , позволяющий выполнять строгие операции над лениво вычисляемыми парами или цепочкой вызовов lazyZip. Также поддерживается неявное преобразование в Iterable[(A, B)].

Inherited from Iterable

Source
def lift: K => Option[V]

Преобразует частичную функцию в обычную функцию, возвращающую результат Option.

Returns

функция, принимающая аргумент x и возвращающая Some(this(x)) если this определена для x, и None в противном случае.

See also

Function.unlift

Inherited from PartialFunction

Source
def map[B](f: (K, V) => B): Iterable[B]

Inherited from IterableOps

Source
def map[K2, V2](f: (K, V) => (K2, V2)): TrieMap[K2, V2]

Создаёт новую карту, применяя функцию ко всем элементам этой карты.

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

функция, применяемая к каждому элементу.

Возвращает

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

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

Источник
def mapResult[NewTo](f: TrieMap[K, V] => NewTo): Builder[(K, V), NewTo]

Строитель, полученный из этого строителя, отображающий результат с помощью f.

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

Источник
def mapValuesInPlace(f: (K, V) => V): TrieMap[K, V]

Применяет функцию преобразования ко всем значениям, содержащимся в этой карте. Функция преобразования создает новые значения из существующих значений, связанных с ключами.

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

преобразование, подлежащее применению

Возвращает

сама карта.

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

Источник
def max[B >: (K, V)](implicit ord: Ordering[B]): (K, V)

Находит максимальный элемент.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип, по которому определено упорядочение.

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

упорядочение, используемое для сравнения элементов.

Возвращает

наибольший элемент этой коллекции по отношению к упорядочению ord.

Выбрасывает
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def maxBy[B](f: (K, V) => B)(implicit cmp: Ordering[B]): (K, V)

Находит первый элемент, который дает наибольшее значение, измеренное функцией f.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип результата функции f.

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

упорядочение, используемое для сравнения элементов.

f

функция измерения.

Возвращает

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

Выбрасывает
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def maxByOption[B](f: (K, V) => B)(implicit cmp: Ordering[B]): Option[(K, V)]

Находит первый элемент, который дает наибольшее значение, измеренное функцией f.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип результата функции f.

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

упорядочение, используемое для сравнения элементов.

f

функция измерения.

Возвращает

значение опции, содержащей первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно упорядочения cmp.

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

Источник
def maxOption[B >: (K, V)](implicit ord: Ordering[B]): Option[(K, V)]

Находит максимальный элемент.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип, по которому определено упорядочение.

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

Упорядочение, используемое для сравнения элементов.

Возвращает

значение варианта, содержащее наибольший элемент этой коллекции по отношению к упорядочению ord.

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

Источник
def min[B >: (K, V)](implicit ord: Ordering[B]): (K, V)

Находит наименьший элемент.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип, по которому определено упорядочение.

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

Упорядочение, используемое для сравнения элементов.

Возвращает

наименьший элемент этой коллекции по отношению к упорядочению ord.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def minBy[B](f: (K, V) => B)(implicit cmp: Ordering[B]): (K, V)

Находит первый элемент, который дает наименьшее значение, измеренное функцией f.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип результата функции f.

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

Упорядочение, используемое для сравнения элементов.

f

Функция измерения.

Возвращает

первый элемент этой коллекции с наименьшим значением, измеренным функцией f, относительно упорядочения cmp.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def minByOption[B](f: (K, V) => B)(implicit cmp: Ordering[B]): Option[(K, V)]

Находит первый элемент, который дает наименьшее значение, измеренное функцией f.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип результата функции f.

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

Упорядочение, используемое для сравнения элементов.

f

Функция измерения.

Возвращает

значение варианта, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f, относительно упорядочения cmp.

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

Источник
def minOption[B >: (K, V)](implicit ord: Ordering[B]): Option[(K, V)]

Находит наименьший элемент.

Примечание: не будет завершаться для коллекций бесконечного размера.

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

Тип, по которому определено упорядочение.

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

Упорядочение, используемое для сравнения элементов.

Возвращает

значение варианта, содержащее наименьший элемент этой коллекции по отношению к упорядочению ord.

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

Источник@inline
final def mkString: String

Отображает все элементы этой коллекции в строке.

Делегирует addString, который может быть переопределен.

Возвращает

строковое представление этого набора. В результирующей строке строковые представления (в отношении метода toString) всех элементов этого набора следуют друг за другом без разделительной строки.

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

Источник@inline
final def mkString(sep: String): String

Отображает все элементы этого набора в строке с использованием разделительной строки.

Делегирует addString, который может быть переопределен.

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

разделительная строка.

Возвращает

строковое представление этого набора. В результирующей строке строковые представления (в отношении метода toString) всех элементов этого набора разделены строкой sep.

Пример

List(1, 2, 3).mkString("|") = "1|2|3"

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

Источник
final def mkString(start: String, sep: String, end: String): String

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

Делегирует addString, который может быть переопределен.

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

конечная строка.

sep

разделительная строка.

start

начальная строка.

Возвращает

строковое представление этого набора. Результирующая строка начинается со строки start и заканчивается строкой end. Внутри строковые представления (в отношении метода toString) всех элементов этого набора разделены строкой sep.

Пример

List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"

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

Источник
override protected def newSpecificBuilder: Builder[(K, V), TrieMap[K, V]]

Классы определения MapFactoryDefaults -> IterableOps
Унаследовано от MapFactoryDefaults

Источник@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
def nonEmpty: Boolean

Проверяет, не пуст ли набор.

Возвращает

true если набор содержит по крайней мере один элемент, false в противном случае.

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

Источник
def orElse[A1 <: K, B1 >: V](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

Комбинирует эту частичную функцию с резервной частичной функцией, которая применяется там, где эта частичная функция не определена.

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

тип аргумента резервной функции

B1

тип результата резервной функции

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

функция резервного копирования

Возвращает

частичная функция, у которой область определения является объединением областей определения этой частичной функции и that. Результирующая частичная функция принимает x в this(x) где this определена, и в that(x) где она не определена.

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

Источник
def partition(p: (K, V) => Boolean): (TrieMap[K, V], TrieMap[K, V])

Пара, состоящая, во-первых, из всех элементов, которые удовлетворяют предикату p, и, во-вторых, из всех элементов, которые не удовлетворяют ему. Интересно тем, что разделяет набор на две части.

Представленная здесь реализация по умолчанию должна дважды пройти по набору. У строгих наборов есть переопределённая версия partition в StrictOptimizedIterableOps, которая требует только одного прохода.

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

Источник
def partitionMap[A1, A2](f: (K, V) => Either[A1, A2]): (Iterable[A1], Iterable[A2])

Применяет функцию f к каждому элементу набора и возвращает пару наборов: первый набор состоит из тех значений, возвращённых функцией f, которые были заключены в scala.util.Left, а второй — из тех, которые были заключены в scala.util.Right.

Пример:

val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
 case i: Int => Left(i)
 case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип элементов первого результирующего набора

A2

тип элементов второго результирующего набора

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

функция 'разделения', отображающая элементы этого набора в scala.util.Either

Возвращает

пара наборов: первый набор состоит из тех значений, возвращённых функцией f , которые были заключены в scala.util.Left, а второй — из тех, которые были заключены в scala.util.Right.

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

Источник
def product[B >: (K, V)](implicit num: Numeric[B]): B

Перемножает элементы этого набора.

Примечание: не завершится для наборов бесконечного размера.

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

тип результата оператора *.

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

неявный параметр, определяющий набор арифметических операций, который включает оператор *, который используется для вычисления произведения.

Возвращает

произведение всех элементов этого набора по отношению к оператору * в num.

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

Источник
def reduce[B >: (K, V)](op: (B, B) => B): B

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

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

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

Параметр типа для бинарного оператора, надтип для A.

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

Бинарный оператор, который должен быть ассоциативным.

Возвращает

Результат применения оператора reduce op ко всем элементам, если набор не пуст.

Исключения
UnsupportedOperationException

если этот набор пуст.

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

Источник
def reduceLeft[B >: (K, V)](op: (B, (K, V)) => B): B

Применяет бинарный оператор ко всем элементам этого набора слева направо.

Примечание: не завершится для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если только тип базового набора не является упорядоченным или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

Возвращает

результат вставки op между последовательными элементами этого набора, слева направо: op( op( ... op(x1, x2) ..., xn-1), xn) где x1, ..., xn — элементы этого набора.

Исключение
UnsupportedOperationException

если этот набор пуст.

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

Исходный код
def reduceLeftOption[B >: (K, V)](op: (B, (K, V)) => B): Option[B]

Применяет бинарный оператор ко всем элементам этого набора, слева направо (необязательно).

Примечание: не завершит работу для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceLeft(op) если этот набор не пуст, None в противном случае.

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

Исходный код
def reduceOption[B >: (K, V)](op: (B, B) => B): Option[B]

Редуцирует элементы этого набора, если таковые имеются, с использованием указанного ассоциативного бинарного оператора.

Порядок выполнения операций над элементами не определен и может быть не детерминированным.

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

параметр типа для бинарного оператора, надтип A.

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

бинарный оператор, который должен быть ассоциативным.

Возвращает

значение типа Option, содержащее результат применения редукционного оператора op ко всем элементам, если набор не пуст, и None в противном случае.

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

Исходный код
def reduceRight[B >: (K, V)](op: ((K, V), B) => B): B

Применяет бинарный оператор ко всем элементам этого набора, справа налево.

Примечание: не завершит работу для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

Возвращает

результат вставки op между последовательными элементами этого набора, справа налево: op(x1, op(x2, ..., op(xn-1, xn)...)) где x1, ..., xn — элементы этого набора.

Исключение
UnsupportedOperationException

если этот набор пуст.

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

Исходный код
def reduceRightOption[B >: (K, V)](op: ((K, V), B) => B): Option[B]

Необязательно применяет бинарный оператор ко всем элементам этого набора, справа налево.

Примечание: не завершит работу для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.

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

тип результата бинарного оператора.

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

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceRight(op) если этот набор не пуст, None в противном случае.

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

Исходный код
def result(): TrieMap[K, V]

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

Исходный код
protected def reversed: Iterable[(K, V)]

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

Исходный код
def runWith[U](action: V => U): K => Boolean

Комбинирует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.

Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно

if(pf isDefinedAt x) { action(pf(x)); true } else false

за исключением того, что runWith реализовано через applyOrElse и, следовательно, потенциально более эффективно. Использование runWith предотвращает двойную оценку совпадений с образцом и условий для частичных функций-литералов.

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

функция действия

Возвращает

функция, которая отображает аргументы x в isDefinedAt(x). Результирующая функция выполняет action(this(x)) там, где this определена.

См. также

applyOrElse.

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

Исходный код
def scan[B >: (K, V)](z: B)(op: (B, B) => B): Iterable[B]

Вычисляет префиксное сканирование элементов набора.

Примечание: нейтральный элемент z может применяться более одного раза.

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

тип элементов результирующего набора

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

ассоциативный оператор для сканирования

z

нейтральный элемент для оператора op

Возвращает

новый набор Iterable, содержащий префиксное сканирование элементов в этом наборе Iterable.

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

Исходный код
def scanLeft[B](z: B)(op: (B, (K, V)) => B): Iterable[B]

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

Исходный код
def scanRight[B](z: B)(op: ((K, V), B) => B): Iterable[B]

Создаёт набор, содержащий кумулятивные результаты применения оператора справа налево. Первый элемент набора — последний кумулятивный результат.

Примечание: не завершит работу для наборов бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Параметры типа
B

тип элементов в результирующем наборе

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

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

набор с промежуточными результатами

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

Исходный код
def sizeCompare(that: Iterable[_]): Int

Сравнивает размер этого набора Iterable с размером другого Iterable.

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

значение Iterable, размер которого сравнивается с размером этой итерируемой коллекции.

Возвращает

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Реализация этого метода не вызывает size напрямую; его время выполнения составляет O(this.size min that.size), а не O(this.size + that.size). Метод следует переопределить, если вычисление size является быстрым, и knownSize возвращает -1.

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

Источник
def sizeCompare(otherSize: Int): Int

Сравнивает размер этой итерируемой коллекции со значением проверки.

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

значение проверки, которое сравнивается с размером.

Возвращает

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Реализация этого метода не вызывает size напрямую; его время выполнения составляет O(size min otherSize), а не O(size). Метод следует переопределить, если вычисление size является быстрым, и knownSize возвращает -1.

См. также

sizeIs

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

Источник
final def sizeHint(coll: IterableOnce[_], delta: Int): Unit

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

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

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

delta

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

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

Источник
def sizeHint(size: Int): Unit

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

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

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

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

Источник
final def sizeHintBounded(size: Int, boundingColl: Iterable[_]): Unit

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

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

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

size

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

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

Источник@inline
final def sizeIs: SizeCompareOps

Возвращает значение класса, содержащего операции для сравнения размера этой итерируемой коллекции со значением проверки.

Эти операции реализованы в терминах sizeCompare(Int) и позволяют использовать следующие более удобочитаемые варианты:

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0
Унаследовано от IterableOps

Source
def slice(from: Int, until: Int): TrieMap[K, V]

Наследуется от IterableOps

Source
def sliding(size: Int, step: Int): Iterator[TrieMap[K, V]]

Группирует элементы в блоки фиксированного размера, применяя «скользящее окно» к ним (в отличие от разбиения, как в grouped).

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

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

количество элементов в группе

step

расстояние между первыми элементами последовательных групп

Возвращает

Итератор, генерирующий итерируемые коллекции размера size, за исключением последнего элемента (который может быть единственным), который будет меньше, если осталось меньше size элементов для группировки.

См. также

scala.collection.Iterator, метод sliding

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

Наследуется от IterableOps

Source
def sliding(size: Int): Iterator[TrieMap[K, V]]

Группирует элементы в блоки фиксированного размера, применяя «скользящее окно» к ним (в отличие от разбиения, как в grouped).

Пустой набор возвращает пустой итератор, а непустой набор, содержащий меньше элементов, чем размер окна, возвращает итератор, который сгенерирует исходный набор как единственный элемент.

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

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые коллекции размера size, за исключением непустого набора с менее чем size элементами, который возвращает итератор, генерирующий сам исходный набор как единственный элемент.

См. также

scala.collection.Iterator, метод sliding

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

Наследуется от IterableOps

Source
def span(p: (K, V) => Boolean): (TrieMap[K, V], TrieMap[K, V])

Наследуется от IterableOps

Source
override def splitAt(n: Int): (TrieMap[K, V], TrieMap[K, V])

Классы определения IterableOps -> IterableOnceOps
Наследуется от IterableOps

Source
def stepper[S <: Stepper[_]](implicit shape: StepperShape[(K, V), S]): S

Возвращает scala.collection.Stepper для элементов этой коллекции.

Stepper позволяет создавать Java-поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, хранящих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этого набора.

  • Для наборов Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для наборов Double или Float, возвращается scala.collection.DoubleStepper

  • Для наборов Long, возвращается scala.collection.LongStepper

  • Для любых других типов элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределён в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, конвертеры в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper можно преобразовать только в последовательные потоки.

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

Исходный код
def subtractAll(xs: IterableOnce[K]): TrieMap[K, V]

Удаляет все элементы, сгенерированные итератором, из этого изменяемого набора.

Параметры
xs

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

Возвращаемое значение

сам изменяемый набор

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

Исходный код
def sum[B >: (K, V)](implicit num: Numeric[B]): B

Суммирует элементы этого набора.

Примечание: не завершит работу для наборов бесконечного размера.

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

тип результата операции +.

Параметры
num

неявный параметр, определяющий набор операций с числами, включающий операцию +, используемую при формировании суммы.

Возвращаемое значение

сумма всех элементов набора по отношению к операции + в num.

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

Исходный код
def tail: TrieMap[K, V]

Остальная часть набора без первого элемента.

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

Исходный код
def tails: Iterator[TrieMap[K, V]]

Итерируется по хвостам этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, а промежуточные значения — результатами последовательных применений tail.

Возвращаемое значение

итератор по всем хвостам этого итерируемого набора

Пример

List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)

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

Исходный код
def take(n: Int): TrieMap[K, V]

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

Исходный код
def takeRight(n: Int): TrieMap[K, V]

Выбирает последние n элементов.

Примечание: может возвращать разные результаты для разных запусков, если тип основного набора не упорядочен.

Параметры
n

количество элементов, которые нужно взять из этого итерируемого набора.

Возвращаемое значение

итерируемый набор, содержащий только последние n элементов этого итерируемого набора, или весь итерируемый набор, если в нём меньше n элементов. Если n отрицательное, возвращает пустой итерируемый набор.

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

Исходный код
def takeWhile(p: (K, V) => Boolean): TrieMap[K, V]

Возвращает самый длинный префикс элементов, удовлетворяющих предикату.

Примечание: может возвращать разные результаты для разных запусков, если тип основного набора не упорядочен.

Параметры
p

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

Возвращаемое значение

самый длинный префикс этого итерируемого набора, элементы которого удовлетворяют предикату p.

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

Исходный код
override def tapEach[U](f: (K, V) => U): TrieMap[K, V]

Классы-родители IterableOps -> IterableOnceOps
Унаследованно от IterableOps

Исходный код
def to[C1](factory: Factory[(K, V), C1]): C1

При заданном фабричном методе набора factory, преобразуйте этот набор в соответствующее представление для текущего типа элементов A. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Исходный код
def toArray[B >: (K, V) : ClassTag]: Array[B]

Преобразовать набор в массив.

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

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

Исходный код@inline
final def toBuffer[B >: (K, V)]: Buffer[B]

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

Исходный код
def toIndexedSeq: IndexedSeq[(K, V)]

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

Исходный код
def toList: List[(K, V)]

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

Исходный код
def toMap[K, V](implicit ev: (K, V) <:< (K, V)): Map[K, V]

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

Исходный код
def toSeq: Seq[(K, V)]

Возвращаемое значение

Этот набор как Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

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

Исходный код
def toSet[B >: (K, V)]: Set[B]

Наследуется от IterableOnceOps

Источник
override def toString(): String

Классы-предки Map -> Function1 -> Iterable -> Any
Наследуется от Map

Источник
def toVector: Vector[(K, V)]

Наследуется от IterableOnceOps

Источник
def transpose[B](implicit asIterable: (K, V) => Iterable[B]): Iterable[Iterable[B]]

Транспонирует это итерируемое множество итерируемых множеств в итерируемое множество итерируемых множеств.

Тип результирующего множества будет определяться статическим типом итерируемого множества. Например:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

Примечание: Даже при применении к представлению или ленивому множеству элементы всегда будут принудительно вычислены.

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

тип элементов каждого итерируемого множества.

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

неявное преобразование, которое утверждает, что тип элемента этого итерируемого множества является Iterable.

Возвращает

двумерное итерируемое множество итерируемых множеств, в котором n-я строка содержит n-й столбец этого итерируемого множества.

Исключения
IllegalArgumentException

если все множества в этом итерируемом множестве не имеют одинаковый размер.

Наследуется от IterableOps

Источник
def unapply(a: K): Option[V]

Попытка извлечь B из A в выражении сопоставления с образцом.

Наследуется от PartialFunction

Источник
def unzip[A1, A2](implicit asPair: (K, V) => (A1, A2)): (Iterable[A1], Iterable[A2])

Преобразует это итерируемое множество пар в два множества первой и второй половины каждой пары.

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

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

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

Возвращает

пара итерируемых множеств, содержащая первую и соответственно вторую половину каждой пары элементов этого итерируемого множества.

Наследуется от IterableOps

Источник
def unzip3[A1, A2, A3](implicit asTriple: (K, V) => (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])

Преобразует это итерируемое множество троек в три множества первого, второго и третьего элемента каждой тройки.

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

тип первого члена троек элементов

A2

тип второго члена троек элементов

A3

тип третьего члена троек элементов

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

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

Возвращает

тройка итерируемых множеств, содержащая первый, второй и соответственно третий член каждой тройки элементов этого итерируемого множества.

Наследуется от IterableOps

Источник
override def updateWith(key: K)(remappingFunction: Option[V] => Option[V]): Option[V]

Обновляет отображение для указанного ключа и его текущего, возможно, сопоставленного значения (Some если существует текущее отображение, None если нет).

Если функция переназначения возвращает Some(v), отображение обновляется с новым значением v. Если функция переназначения возвращает None, отображение удаляется (или остается отсутствующим, если оно изначально отсутствовало). Если сама функция вызывает исключение, исключение повторно выбрасывается, а текущее отображение остается неизменным.

Если карта обновляется другим одновременным доступом, функция переназначения будет повторно выполняться до тех пор, пока она не будет успешно обновлена.

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

значение ключа

remappingFunction

частичная функция, которая принимает текущее, возможно, сопоставленное значение и возвращает новое отображение

Возвращает

новое значение, связанное с указанным ключом

Классы-предки Map -> MapOps
Наследуется от Map

Источник
def valueStepper[S <: Stepper[_]](implicit shape: StepperShape[V, S]): S

Возвращает Stepper для значений этой карты. См. метод stepper.

Наследуется от MapOps

Источник
def valuesIterator: Iterator[V]

Создает итератор для всех значений в этой карте.

Возвращает

итератор по всем значениям, связанным с каким-либо ключом в этой карте.

Наследуется от MapOps

Источник
def withDefault(d: K => V): Map[K, V]

Та же самая карта с заданной функцией по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefaultValue.

Вызов методов преобразования (например, map) не сохранит значение по умолчанию.

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

функция, сопоставляющая ключи со значениями, используемая для отсутствующих ключей

Возвращает

обёртка над картой с значением по умолчанию

Наследуется от Map

Источник
def withDefaultValue(d: V): Map[K, V]

Та же самая карта с заданным значением по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefaultValue.

Вызов методов преобразования (например, map) не сохранит значение по умолчанию.

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

значение по умолчанию, используемое для отсутствующих ключей

Возвращает

обёртка над картой с значением по умолчанию

Наследуется от Map

Источник
override def withFilter(p: (K, V) => Boolean): WithFilter[K, V, Iterable, TrieMap]

Классы-предки MapFactoryDefaults -> IterableOps
Наследуется от MapFactoryDefaults

Source
def zip[B](that: IterableOnce[B]): Iterable[((K, V), B)]

Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции, объединяя соответствующие элементы парами. Если одна из двух коллекций длиннее другой, оставшиеся элементы игнорируются.

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

тип второй половины возвращаемых пар

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

Итерируемая коллекция, предоставляющая вторую половину каждой пары результатов

Возвращает

новая итерируемая коллекция, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и that. Длина возвращаемой коллекции — это минимум из длин этой итерируемой коллекции и that.

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

Source
def zipAll[A1 >: (K, V), B](that: Iterable[B], thisElem: A1, thatElem: B): Iterable[(A1, B)]

Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции, объединяя соответствующие элементы парами. Если одна из двух коллекций короче другой, для расширения более короткой коллекции до длины более длинной используются элементы-заполнители.

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

итерируемая коллекция, предоставляющая вторую половину каждой пары результатов

thatElem

элемент, который используется для заполнения результата, если that короче, чем эта итерируемая коллекция.

thisElem

элемент, который используется для заполнения результата, если эта итерируемая коллекция короче, чем that.

Возвращает

новая коллекция типа That, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и that. Длина возвращаемой коллекции — это максимум из длин этой итерируемой коллекции и that. Если эта итерируемая коллекция короче that, используются значения thisElem для заполнения результата. Если that короче, чем эта итерируемая коллекция, значения thatElem используются для заполнения результата.

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

Source
def zipWithIndex: Iterable[((K, V), Int)]

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

© 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/concurrent/TrieMap.html

Spec-Zone.ru

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