Spec-Zone.ru › Scala 3.2

Класс TreeSeqMap.TreeSeqMap

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

final class TreeSeqMap[K, +V] extends AbstractMap[K, V] with SeqMap[K, V] with MapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]] with StrictOptimizedIterableOps[(K, V), Iterable, TreeSeqMap[K, V]] with StrictOptimizedMapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]] with MapFactoryDefaults[K, V, TreeSeqMap, Iterable]

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

По умолчанию используется порядок вставки (TreeSeqMap.OrderBy.Insertion), но порядок модификации (TreeSeqMap.OrderBy.Modification) может быть использован вместо этого, если это указано при создании.

Метод orderingBy(orderBy: TreeSeqMap.OrderBy): TreeSeqMap[K, V] может быть использован для переключения на указанный порядок для возвращаемой карты.

Ключ можно вручную обновить (т.е. поместить в конец) с помощью метода refresh(key: K): TreeSeqMap[K, V] (независимо от используемого порядка).

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

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

тип ключей, содержащихся в этой карте.

V

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

Супертипы
25 типов
Тракт StrictOptimizedMapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]]
Тракт StrictOptimizedMapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]]
Тракт StrictOptimizedIterableOps[(K, V), Iterable, TreeSeqMap[K, V]]
Тракт SeqMap[K, V]
Тракт SeqMap[K, V]
Класс AbstractMap[K, V]
Тракт Map[K, V]
Тракт MapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]]
Тракт Iterable[(K, V)]
Класс AbstractMap[K, V]
Тракт Map[K, V]
Тракт Equals
Тракт MapFactoryDefaults[K, V, TreeSeqMap, Iterable]
Тракт MapOps[K, V, TreeSeqMap, TreeSeqMap[K, V]]
Тракт PartialFunction[K, V]
Тракт K => V
Класс AbstractIterable[(K, V)]
Тракт Iterable[(K, V)]
Тракт IterableFactoryDefaults[(K, V), Iterable]
Тракт IterableOps[(K, V), Iterable, TreeSeqMap[K, V]]
Тракт IterableOnceOps[(K, V), Iterable, TreeSeqMap[K, V]]
Тракт IterableOnce[(K, V)]
Класс Object
Тракт Matchable
Класс Any

Наследуемые классы

Исходный код
protected class ImmutableKeySet extends AbstractSet[K] with DefaultSerializable

Класс реализации набора, возвращаемого keySet

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

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

Исходный код
override def collect[K2, V2](pf: PartialFunction[(K, V), (K2, V2)]): TreeSeqMap[K2, V2]

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

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

тип ключа возвращаемого неизменяемого древовидного словаря последовательности.

V2

тип значения возвращаемого неизменяемого древовидного словаря последовательности.

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

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

Возвращает

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

Определяющие классы StrictOptimizedMapOps -> MapOps

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

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

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

объект итерируемой последовательности, подлежащий добавлению.

Возвращает

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

Определяющие классы StrictOptimizedMapOps -> StrictOptimizedMapOps -> MapOps

Источник
override def contains(key: K): Boolean

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

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

ключ

Возвращает

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

Определяющие классы MapOps

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

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

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

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

Возвращает

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

Определяющие классы StrictOptimizedMapOps -> MapOps

Источник
def get(key: K): Option[V]

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

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

значение ключа

Возвращает

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

Источник
override def head: (K, V)

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

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

Возвращает

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

Исключения
NoSuchElementException

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

Определяющие классы IterableOps

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

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

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

Возвращает

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

Определяющие классы IterableOps

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

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

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

Определяющие классы IterableOps

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

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

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

Возвращает

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

Определяющие классы IterableOnceOps

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

Итератор может быть использован только один раз

Исходный код
override def keysIterator: Iterator[K]

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

Возвращает

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

Определяющие классы MapOps

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

Возвращает

Количество элементов в этой неизменяемой последовательности дерева отображений, если оно может быть вычислено недорого, -1 в противном случае. Дешево обычно означает: не требует обхода коллекции.

Определяющие классы IterableOnce

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

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

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

Возвращает

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

Исключения
NoSuchElementException

Если неизменяемая последовательность дерева отображений пуста.

Определяющие классы IterableOps

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

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

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

Возвращает

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

Определяющие классы IterableOps

Исходный код
override def map[K2, V2](f: ((K, V)) => (K2, V2)): TreeSeqMap[K2, V2]

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

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

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

Возвращает

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

Определяющие классы StrictOptimizedMapOps -> MapOps

Source
override def mapFactory: MapFactory[TreeSeqMap]

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

Примечание

При реализации пользовательского типа коллекции и уточнении CC до нового типа, этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).

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

Source
def orderingBy(orderBy: OrderBy): TreeSeqMap[K, V]

Source
def refresh(key: K): TreeSeqMap[K, V]

Source
def removed(key: K): TreeSeqMap[K, V]

Удаляет ключ из этой карты, возвращая новую карту.

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

ключ, который нужно удалить

Возвращает

новая карта без связи для ключа

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

Выбирает интервал элементов. Возвращаемая неизменяемая карта типа tree seq содержит все элементы x, которые удовлетворяют инварианту:

from <= indexOf(x) < until

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

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

наименьший индекс для включения из этой неизменяемой карты типа tree seq.

until

наименьший индекс для ИСКЛЮЧЕНИЯ из этой неизменяемой карты типа tree seq.

Возвращает

неизменяемая карта типа tree seq, содержащая элементы, большие или равные индексу from, простираясь до (но не включая) индекса until этой неизменяемой карты типа tree seq.

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

Source
override def tail: TreeSeqMap[K, V]

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

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

Source
def updated[V1 >: V](key: K, value: V1): TreeSeqMap[K, V1]

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

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

тип добавленного значения

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

ключ

value

значение

Возвращает

Новая карта с добавленной новой связью ключ/значение в эту карту. <invalid inheritdoc annotation>

Source
override def valuesIterator: Iterator[V]

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

Возвращает

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

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

Методы-наследники

Source
override def +[V1 >: V](kv: (K, V1)): CC[K, V1]

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

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

тип значения в паре ключ/значение.

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

пара ключ/значение.

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

Новая карта с добавленной связью.

Определяющие классы MapOps -> MapOps
Унаследовано от MapOps

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

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

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

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

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

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

Исходный код
final def -(key: K): C

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

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

Исходный код
final override def --(keys: IterableOnce[K]): C

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

Определяющие классы MapOps -> MapOps
Унаследовано от MapOps

Исходный код
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

Исходный код
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

Добавляет все элементы этой карты в строковый буфер с использованием начальной, конечной и разделительных строк. Текст начинается со строки start и заканчивается строкой end. Между ними строковые представления (с учётом метода 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 , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
Параметры значения
b

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

end

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

sep

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

start

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

Возвращает

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

Определяющие классы MapOps -> IterableOnceOps
Унаследовано от MapOps

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Определяющие классы PartialFunction -> Function1
Унаследовано от PartialFunction

Источник
def apply(key: K): V

Возвращает значение, связанное с заданным ключом. Этот метод вызывает метод default карты, если нет сопоставления от заданного ключа к значению. Если не переопределено, метод default выбрасывает NoSuchElementException.

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

ключ

Возвращает

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

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

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

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

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

if(pf isDefinedAt x) pf(x) else default(x)

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

- объединение частичных функций в цепочки orElse/andThen не приводит к чрезмерному вычислению apply/isDefinedAt - lift и unlift не вычисляют исходные функции дважды при каждом вызове - runWith позволяет эффективно объединить частичные функции в императивном стиле с условными действиями

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

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

функция по умолчанию

x

аргумент функции

Возвращает

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

Определяющие классы MapOps -> PartialFunction
Унаследовано от MapOps

Исходный код
def canEqual(that: Any): Boolean

Метод, который должен вызываться из каждой хорошо спроектированной функции equals, которая может быть переопределена в подклассе. См. Программирование на Scala, глава 28 для обсуждения и проектирования.

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

значение, проверяемое на возможность равенства

Возвращает

true, если этот экземпляр может быть равен that, иначе false

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

Исходный код
override def collect[B](pf: PartialFunction[(K, V), B]): CC[B]

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

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

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

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

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

Возвращает

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

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

Исходный код
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, B]

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

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

Тип параметров
R

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

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

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

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

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

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

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

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

Тип параметров
A

тип, к которому можно применить функцию g

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

функция A => T1

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

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

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

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

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

Тип параметров
B

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

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

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

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

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

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

Источник
def copyToArray[B >: (K, V)](xs: Array[B], start: Int, len: Int): Int

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

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

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

Тип параметров
B

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

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

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

start

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

xs

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

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

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

Примечание

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

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

Источник
def copyToArray[B >: (K, V)](xs: Array[B], start: Int): Int

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

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

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

Тип параметров
B

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

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

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

xs

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

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

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

Примечание

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

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

Source
def copyToArray[B >: (K, V)](xs: Array[B]): Int

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

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

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

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

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

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

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

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

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

Примечание

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

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

Source
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

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

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

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

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

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

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

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

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

Source
def default(key: K): V

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

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

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

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

Source
def drop(n: Int): C

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

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

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

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

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

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

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

Source
override def dropRight(n: Int): C

Остальная часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно избегать создания копии.

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

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

Исходный код
def dropWhile(p: ((K, V)) => Boolean): C

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

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

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

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

Возвращает

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

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

Исходный код
def elementWise: ElementWiseExtractor[A, B]

Возвращает объект-экстрактор с методом 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: CC[K, V]

Пустой итерируемый набор того же типа, что и этот итерируемый набор

Возвращает

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

Классы-определения 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

Исходный код
override def filter(pred: ((K, V)) => Boolean): C

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

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

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

Возвращает

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

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

Исходный код
override def filterNot(pred: ((K, V)) => Boolean): C

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

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

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

Возвращает

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

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

Исходный код
def find(p: ((K, V)) => Boolean): Option[A]

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

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

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

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

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

Возвращает

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

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

Исходный код
override def flatMap[B](f: ((K, V)) => IterableOnce[B]): CC[B]

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

Например:

def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")

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

// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)

// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)

// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)

// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
Параметры типа
B

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

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

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

Возвращает

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

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

Исходный код
override def flatten[B](implicit toIterableOnce: ((K, V)) => IterableOnce[B]): CC[B]

Преобразует это итерируемое множество перебираемых множеств в итерируемое множество, образованное элементами этих перебираемых множеств.

Тип результирующего множества будет определяться типом итерируемого множества. Например:

val xs = List(
           Set(1, 2, 3),
           Set(1, 2, 3)
         ).flatten
// xs == List(1, 2, 3, 1, 2, 3)

val ys = Set(
           List(1, 2, 3),
           List(3, 2, 1)
         ).flatten
// ys == Set(1, 2, 3)
Параметры типа
B

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

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

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

Возвращает

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

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Исходный код
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

Исходный код
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)]): CC[K, V]

Определяет, как преобразовать заданный Iterable[A] в коллекцию типа C.

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

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, смешав в себе трейт scala.collection.IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

Как свидетельствует аннотация @uncheckedVariance, использование этого метода может быть небезопасным. Однако, до тех пор, пока он вызывается с Iterable[A], полученным из this коллекции (как это происходит в реализациях операций, где мы используем View[A]), он безопасен.

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

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

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

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

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

Параметры
default

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

key

ключ.

Возвращает

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

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

Source
def groupBy[K](f: ((K, V)) => K): Map[K, C]

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

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

Тип параметров
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, CC[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[C]

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

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

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

Возвращает

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

См. также

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

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

Исходный код
override def hashCode(): Int

Вычисляет значение хэш-кода для объекта.

Алгоритм хэширования по умолчанию зависит от платформы.

Важно отметить, что допускается, что два объекта могут иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.

Возвращает

значение хэш-кода для этого объекта.

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

Исходный код
def inits: Iterator[C]

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

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

Возвращает

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

Пример

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

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

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

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

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

ключ

Возвращает

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

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

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

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

Возвращает

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

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

Исходный код
override def iterableFactory: IterableFactory[Iterable]

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

Примечание

При реализации пользовательского типа набора и уточнении CC до нового типа, этот метод нужно переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).

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

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

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

Возвращает

набор, содержащий все ключи этой карты.

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

Исходный код
def keyStepper[S <: Stepper[_]](implicit shape: StepperShape[K, S]): S

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

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

Исходный код
def keys: Iterable[K]

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

Возвращает

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

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

Исходный код
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

Аналогично 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)
Параметры типа
B

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

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

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

Возвращает

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

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

Исходный код
def lift: A => Option[B]

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

Возвращает

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

См. также

Function.unlift

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

Исходный код
override def map[B](f: ((K, V)) => B): CC[B]

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

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

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

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

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

Возвращает

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

Классы определений StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

Исходный код
def max[B >: (K, V)](implicit ord: Ordering[B]): A

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Исходный код
def maxBy[B](f: ((K, V)) => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Исходный код
def maxByOption[B](f: ((K, V)) => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

Тип, над которым определяется порядок.

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

Источник
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), CC[K, V]]

Возвращает

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализовать этот метод возможно, но полученный Builder нарушит ленивость. Вследствие этого операции предпочтительно реализовывать с помощью fromSpecific вместо этого метода.

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, добавив трайт scala.collection.IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, если возвращаемый билдер будет заполняться только значениями A, взятыми из экземпляра this, он будет безопасным.

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

Source
def nonEmpty: Boolean

Проверяет, пуст ли коллекция.

Возвращает

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

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

Source
def orElse[A1 <: K, B1 >: V](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

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

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

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

B1

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

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

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

Возвращает

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

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

Source
override def partition(p: ((K, V)) => Boolean): (C, C)

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

Реализация по умолчанию требует два прохода по коллекции. Жесткие коллекции имеют переопределенную версию partition в StrictOptimizedIterableOps, которая требует только одного прохода.

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

Source
override def partitionMap[A1, A2](f: ((K, V)) => Either[A1, A2]): (CC[A1], CC[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.

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

Source
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

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

Возвращает

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

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

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

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

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

Тип параметров
B

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

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

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

Возвращает

Значение типа Option, содержащее результат применения оператора reduce к 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 removedAll(keys: IterableOnce[K]): C

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

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

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

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

Возвращает

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

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

Источник
protected def reversed: Iterable[A]

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

Источник
def runWith[U](action: V => U): A => 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): CC[B]

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

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

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

тип элементов результирующей коллекции

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

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

z

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

Возвращает

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

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

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

Создаёт итерируемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.

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

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

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

тип элементов в результирующей коллекции

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

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

z

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

Возвращает

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

Классы определений StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

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

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

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

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

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

Пример:

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

тип элементов в результирующей коллекции

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

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

z

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

Возвращает

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

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

Источник
def sizeCompare(that: Iterable[_]): Int

Сравнивает размер этой итерируемой коллекции с размером другой 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 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

Источник
def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их на части, как в 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

Источник
def sliding(size: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их на части, как в 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

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

Разделяет этот итерируемый набор на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

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

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

предикат теста

Возвращает

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

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

Источник
override def splitAt(n: Int): (C, C)

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

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

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

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

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

Возвращает

пару итерируемых наборов элементов, состоящую из первых n элементов этого итерируемого набора элементов и других элементов.

Определяющие классы IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Источник
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. Для Steppers, помеченных scala.collection.Stepper.EfficientSplit, конвертеры в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные Steppers могут быть преобразованы только в последовательные потоки.

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

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

Суммирует элементы этой коллекции.

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

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

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

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

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

Возвращает

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

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

Источник
def tails: Iterator[C]

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

Возвращает

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

Пример

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

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

Источник
def take(n: Int): C

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

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

Параметры
n

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

Возвращает

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

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

Источник
override def takeRight(n: Int): C

Набор, содержащий последние n элементы этого набора.

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

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

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

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

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

Параметры
p

Предикат для проверки элементов.

Возвращает

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

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

Источник
override def tapEach[U](f: ((K, V)) => U): C

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

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

тип возвращаемого значения f

Параметры
f

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

Возвращает

логически тот же набор, что и этот

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

Источник
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

Source
final def toBuffer[B >: (K, V)]: Buffer[B]

Inherited from IterableOnceOps

Source
def toIndexedSeq: IndexedSeq[A]

Inherited from IterableOnceOps

Source
def toList: Список[A]

Inherited from IterableOnceOps

Source
final override def toMap[K2, V2](implicit ev: (K, V) <:< (K2, V2)): Map[K2, V2]

Definition Classes Map -> IterableOnceOps
Inherited from Map

Source
def toSeq: Seq[A]

Возвращает

Этот набор в виде Seq[A]. Это эквивалентно to(Seq) , но может быть быстрее.

Inherited from IterableOnceOps

Source
def toSet[B >: (K, V)]: Множество[B]

Inherited from IterableOnceOps

Source
override def toString(): Строка

Возвращает строковое представление объекта.

Представление по умолчанию зависит от платформы.

Возвращает

строковое представление объекта.

Definition Classes Map -> Функция1 -> Iterable -> Любой
Inherited from Map

Source
def toVector: Вектор[A]

Inherited from IterableOnceOps

Source
def transform[W](f: (K, V) => W): CC[K, W]

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

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

Функция над ключами и значениями

Возвращает

обновленное отображение

Inherited from MapOps

Source
def transpose[B](implicit asIterable: ((K, V)) => Iterable[B]): CC[CC[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[B]

Попытка извлечь B из A в выражении сопоставления с образцом.

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

Источник
override def unzip[A1, A2](implicit asPair: ((K, V)) => (A1, A2)): (CC[A1], CC[A2])

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

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Тип параметров
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

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

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

Возвращает

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

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

Источник
override def unzip3[A1, A2, A3](implicit asTriple: ((K, V)) => (A1, A2, A3)): (CC[A1], CC[A2], CC[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

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

Возвращает

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

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

Источник
def updatedWith[V1 >: V](key: K)(remappingFunction: Option[V] => Option[V1]): CC[K, V1]

Обновляет отображение для указанного ключа и его текущего, возможно, сопоставленного значения (Some если есть текущее отображение, None если нет).

Если функция переназначения возвращает Some(v), отображение обновляется с новым значением v. Если функция переназначения возвращает None, отображение удаляется (или остается отсутствующим, если изначально отсутствовало). Если сама функция вызывает исключение, исключение перехватывается, а текущее отображение остается неизменным.

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

значение ключа

remappingFunction

частичная функция, которая получает текущее, возможно, сопоставленное значение и возвращает новое отображение

Возвращает

новый массив с обновленным отображением с ключом

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

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

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

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

Source
def values: Iterable[V]

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

Возвращает

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

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

Source
override def view: MapView[K, V]

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

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

Source
def withDefault[V1 >: V](d: K => V1): Map[K, V1]

Такая же карта с заданной функцией по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefault.

Вызов методов трансформации (например, map) не сохранит значение по умолчанию.

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

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

Возвращает

обёртка карты со значением по умолчанию

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

Source
def withDefaultValue[V1 >: V](d: V1): Map[K, V1]

Такая же карта с заданным значением по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefaultValue.

Вызов методов трансформации (например, map) не сохранит значение по умолчанию.

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

значение по умолчанию, используемое для отсутствующих ключей

Возвращает

обёртка карты со значением по умолчанию

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

Source
override def withFilter(p: ((K, V)) => Boolean): WithFilter[K, V, WithFilterCC, CC]

Создаёт нестрогий фильтр этой карты.

Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новый набор, а второй лишь ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.

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

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

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

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этой карты, которые удовлетворяют предикату p.

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

Source
override def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

Type parameters
B

тип второй половины возвращаемых пар

Value parameters
that

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

Returns

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

Definition Classes StrictOptimizedIterableOps -> IterableOps
Inherited from StrictOptimizedIterableOps

Source
def zipAll[A1 >: (K, V), B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

Value parameters
that

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

thatElem

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

thisElem

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

Returns

новая коллекция типа That, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и that. Длина возвращаемой коллекции — это максимум из длин этой итерируемой коллекции и that . Если эта итерируемая коллекция короче that, значения thisElem используются для заполнения результата. Если that короче этой итерируемой коллекции, значения thatElem используются для заполнения результата.

Inherited from IterableOps

Source
override def zipWithIndex: CC[(A, Int)]

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

Returns

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

Example

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

Конкретные поля

Source
val orderedBy: OrderBy

Source
override val size: Int

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

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

Returns

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

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

Spec-Zone.ru

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