Класс 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 вставок/модификаций вся карта копируется (тем самым сбрасывая счётчик порядковых номеров).
| Параметры типа |
|
|---|---|
| Супертипы | 25 типов |
Наследуемые классы
Исходный код
Класс реализации набора, возвращаемого keySet
| Наследуется от | MapOps |
|---|
Конкретные методы
Исходный код
Создает новую коллекцию, применяя частичную функцию ко всем элементам этой неизменяемой древовидной последовательности словарей, для которых эта функция определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый неизменяемый древовидный словарь последовательности, полученный в результате применения заданной частичной функции |
| Определяющие классы | StrictOptimizedMapOps -> MapOps |
Источник
Возвращает новый неизменяемый древовидный словарь последовательности, содержащий элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элемента неизменяемого древовидного словаря последовательности — это самый специфичный суперкласс, охватывающий типы элементов двух операндов.
| Параметры значения |
|
|---|---|
| Возвращает | новый неизменяемый древовидный словарь последовательности, который содержит все элементы этого неизменяемого древовидного словаря последовательности, за которыми следуют все элементы |
| Определяющие классы | StrictOptimizedMapOps -> StrictOptimizedMapOps -> MapOps |
Источник
Проверяет, содержит ли этот словарь привязку для ключа.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Определяющие классы | MapOps |
Источник
Создает новый словарь, применяя функцию ко всем элементам этого неизменяемого древовидного словаря последовательности и используя элементы полученных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | новый неизменяемый древовидный словарь последовательности, полученный в результате применения данной функции, возвращающей коллекцию |
| Определяющие классы | StrictOptimizedMapOps -> MapOps |
Источник
Возвращает значение, связанное с ключом, если оно есть.
| Параметры значения |
|
|---|---|
| Возвращает | значение типа Option, содержащее значение, связанное с |
Источник
override def head: (K, V)
Выбирает первый элемент этого неизменяемого древовидного словаря последовательности.
Примечание: может возвращать разные результаты при разных запусках, если тип основной коллекции не упорядочен.
| Возвращает | первый элемент этого неизменяемого древовидного словаря последовательности. |
|---|---|
| Исключения |
|
| Определяющие классы | IterableOps |
Источник
override def headOption: Option[(K, V)]
Возвращает первый элемент, если он есть.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Возвращает | первый элемент этой неизменяемой последовательности дерева отображений, если она непустая, |
|---|---|
| Определяющие классы | IterableOps |
Исходный код
override def init: TreeSeqMap[K, V]
Начальная часть коллекции без последнего элемента.
Примечание: даже при применении к представлению или ленивой коллекции она всегда будет принудительно вычислять элементы.
| Определяющие классы | IterableOps |
|---|
Исходный код
Проверяет, является ли неизменяемая последовательность дерева отображений пустой.
Примечание: Реализации в подклассах, которые не многократно проходимы, должны следить за тем, чтобы не потреблять элементы, когда isEmpty вызывается.
| Возвращает |
|
|---|---|
| Определяющие классы | IterableOnceOps |
Исходный код
Итератор может быть использован только один раз
Исходный код
override def keysIterator: Iterator[K]
Создает итератор для всех ключей.
| Возвращает | итератор по всем ключам. |
|---|---|
| Определяющие классы | MapOps |
Исходный код
| Возвращает | Количество элементов в этой неизменяемой последовательности дерева отображений, если оно может быть вычислено недорого, -1 в противном случае. Дешево обычно означает: не требует обхода коллекции. |
|---|---|
| Определяющие классы | IterableOnce |
Исходный код
override def last: (K, V)
Выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Возвращает | Последний элемент этой неизменяемой последовательности дерева отображений. |
|---|---|
| Исключения |
|
| Определяющие классы | IterableOps |
Исходный код
override def lastOption: Option[(K, V)]
Выбирает последний элемент, если он есть.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Возвращает | последний элемент этой неизменяемой последовательности дерева отображений, если она непустая, |
|---|---|
| Определяющие классы | IterableOps |
Исходный код
override def map[K2, V2](f: ((K, V)) => (K2, V2)): TreeSeqMap[K2, V2]
Создает новое отображение, применяя функцию ко всем элементам этой неизменяемой последовательности дерева отображений.
| Параметры значения |
|
|---|---|
| Возвращает | новое неизменяемое отображение последовательности дерева, полученное путем применения заданной функции |
| Определяющие классы | StrictOptimizedMapOps -> MapOps |
Source
Объект-компаньон этой карты, предоставляющий различные методы фабрики.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Классы-определения | SeqMap -> SeqMap -> Map -> Map -> MapOps |
Source
Source
def refresh(key: K): TreeSeqMap[K, V]
Source
def removed(key: K): TreeSeqMap[K, V]
Удаляет ключ из этой карты, возвращая новую карту.
| Параметры значения |
|
|---|---|
| Возвращает | новая карта без связи для ключа |
Source
Выбирает интервал элементов. Возвращаемая неизменяемая карта типа tree seq содержит все элементы x, которые удовлетворяют инварианту:
from <= indexOf(x) < 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]
Создает новую карту, полученную путем обновления этой карты заданной парой ключ/значение.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Новая карта с добавленной новой связью ключ/значение в эту карту. <invalid inheritdoc annotation> |
Source
override def valuesIterator: Iterator[V]
Создает итератор для всех значений в этой карте.
| Возвращает | итератор по всем значениям, которые связаны с каким-либо ключом в этой карте. |
|---|---|
| Классы-определения | MapOps |
Методы-наследники
Source
override def +[V1 >: V](kv: (K, V1)): CC[K, V1]
Псевдоним для updated
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | Новая карта с добавленной связью. |
| Определяющие классы | 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 |
Исходный код
Добавляет все элементы этой коллекции в строку-построитель. Текст состоит из строковых представлений (с учётом метода 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
| Параметры значения |
|
|---|---|
| Возвращаемое значение | строковый буфер |
| Унаследовано от | IterableOnceOps |
Исходный код
Добавляет все элементы этой коллекции в строковый буфер с использованием разделителя. Текст состоит из строковых представлений (с учётом метода 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
| Параметры значения |
|
|---|---|
| Возвращаемое значение | строковый буфер |
| Унаследовано от | IterableOnceOps |
Исходный код
Добавляет все элементы этой карты в строковый буфер с использованием начальной, конечной и разделительных строк. Текст начинается со строки 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)
| Параметры значения |
|
|---|---|
| Возвращает | строка-построитель |
| Определяющие классы | MapOps -> IterableOnceOps |
| Унаследовано от | MapOps |
Источник
Компонует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.
Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить её побочный эффект. Для повышения эффективности рекомендуется вызывать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, суженной другой частичной функцией, которая отображает аргументы |
| Унаследовано от | PartialFunction |
Источник
override def andThen[C](k: V => C): PartialFunction[A, C]
Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
Если тип времени выполнения функции является PartialFunction, то используется другой метод andThen (обратите внимание на предостережения).
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, возможно суженной указанной функцией, которая отображает аргументы |
| Определяющие классы | PartialFunction -> Function1 |
| Унаследовано от | PartialFunction |
Источник
def apply(key: K): V
Возвращает значение, связанное с заданным ключом. Этот метод вызывает метод default карты, если нет сопоставления от заданного ключа к значению. Если не переопределено, метод default выбрасывает NoSuchElementException.
| Параметры значения |
|
|---|---|
| Возвращает | значение, связанное с заданным ключом, или результат метода |
| Унаследовано от | 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 оценки. Это может привести к лучшей производительности и более предсказуемому поведению относительно побочных эффектов.
| Параметры значений |
|
|---|---|
| Возвращает | результат применения этой функции или функции по умолчанию. |
| Определяющие классы | MapOps -> PartialFunction |
| Унаследовано от | MapOps |
Исходный код
Метод, который должен вызываться из каждой хорошо спроектированной функции equals, которая может быть переопределена в подклассе. См. Программирование на Scala, глава 28 для обсуждения и проектирования.
| Параметры значений |
|
|---|---|
| Возвращает | true, если этот экземпляр может быть равен |
| Унаследовано от | Map |
Исходный код
override def collect[B](pf: PartialFunction[(K, V), B]): CC[B]
Создает новую итерируемую коллекцию, применяя частичную функцию ко всем элементам этой итерируемой коллекции, для которых функция определена.
| Параметры типов |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая итерируемая коллекция, полученная путем применения данной частичной функции |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Находит первый элемент коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значений |
|
|---|---|
| Возвращает | значение типа Option, содержащее pf, примененное к первому значению, для которого оно определено, или |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Компонует другую частичную функцию k с этой частичной функцией таким образом, что эта частичная функция применяется к результатам k.
Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить ее побочный эффект. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | частичная функция с областью определения другой частичной функции, суженной этой частичной функцией, которая отображает аргументы |
| Унаследовано от | PartialFunction |
Источник
def compose[A](g: A => K): A => R
Компонует две инстанции Function1 в новую Function1, применяя эту функцию последней.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | новая функция |
| Унаследовано от | Function1 |
Источник
def concat[B >: (K, V)](suffix: IterableOnce[B]): CC[B]
Возвращает новую итерируемую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов итерируемой коллекции — это наиболее специфический суперкласс, охватывающий типы элементов двух операндов.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | новая итерируемая коллекция, содержащая все элементы этой итерируемой коллекции, за которыми следуют все элементы |
| Унаследовано от | IterableOps |
Источник
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет данный массив xs начиная с индекса start не более чем len элементами этой коллекции.
Копирование прекращается, когда скопированы все элементы этой коллекции, достигнут конец массива или скопировано len элементов.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Использование итератора после вызова метода неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Источник
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет данный массив xs начиная с индекса start значениями этой коллекции.
Копирование прекращается, когда скопированы все элементы этой коллекции или достигнут конец массива.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Использование итератора после вызова метода неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этого набора.
Копирование остановится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: После вызова этого метода нужно избавиться от итератора, на котором он был вызван. Его дальнейшее использование неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствуют ли все элементы итератора этого набора соответствующим элементам другого набора, удовлетворяя предикат проверки.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Унаследовано от | IterableOnceOps |
Source
Подсчитывает количество элементов в наборе, удовлетворяющих предикату.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | количество элементов, удовлетворяющих предикату |
| Унаследовано от | IterableOnceOps |
Source
def default(key: K): V
Определяет вычисление значения по умолчанию для карты, возвращаемое при отсутствии ключа. Реализованный здесь метод выбрасывает исключение, но может быть переопределён в подклассах.
| Параметры значения |
|
|---|---|
| Унаследовано от | MapOps |
Source
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, за исключением первых |
| Унаследовано от | IterableOps |
Source
Остальная часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно избегать создания копии.
Примечание: Даже при применении к представлению или ленивому набору элементов, он всегда будет принудительно применять элементы.
| Классы-определения | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Удаляет наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | наибольший суффикс этого итерируемого набора, первый элемент которого не удовлетворяет предикату |
| Унаследовано от | 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]
Пустой итерируемый набор того же типа, что и этот итерируемый набор
| Возвращает | пустой итерируемый набор типа |
|---|---|
| Классы-определения | MapFactoryDefaults -> IterableOps |
| Унаследовано от | MapFactoryDefaults |
Исходный код
Равенство карт реализуется с помощью метода поиска 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
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Классы-определения | Map -> Equals -> Any |
| Унаследовано от | Map |
Исходный код
Проверяет, выполняется ли предикат хотя бы для одного элемента этого набора.
Примечание: может не завершиться для наборов бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Выбирает все элементы этого итерируемого набора, которые удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новый итерируемый набор, состоящий из всех элементов этого итерируемого набора, которые удовлетворяют заданному предикату |
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Выбирает все элементы этого итерируемого набора, которые не удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новый итерируемый набор, состоящий из всех элементов этого итерируемого набора, которые не удовлетворяют заданному предикату |
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Находит первый элемент набора, удовлетворяющий предикату, если таковой есть.
Примечание: может не завершаться для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение option, содержащее первый элемент в наборе, удовлетворяющий |
| Унаследовано от | 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый итерируемый набор, полученный путём применения заданной функции, возвращающей набор |
| Классы определения | 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новое итерируемое множество, полученное путем конкатенации всех итерируемых множеств элементов. |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
def fold[A1 >: (K, V)](z: A1)(op: (A1, A1) => A1): A1
Складывает элементы этого множества с использованием указанного ассоциативного бинарного оператора. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективных порядков обхода.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Примечание: не завершится для бесконечных множеств.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат применения оператора сложения |
| Унаследовано от | IterableOnceOps |
Исходный код
def foldLeft[B](z: B)(op: (B, (K, V)) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этого множества слева направо.
Примечание: не завершится для бесконечных множеств.
Примечание: может возвращать разные результаты для разных запусков, если тип базового множества не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Исходный код
def foldRight[B](z: B)(op: ((K, V), B) => B): B
Применяет бинарный оператор ко всем элементам этого множества и начальному значению справа налево.
Примечание: не завершится для бесконечных множеств.
Примечание: может возвращать разные результаты для разных запусков, если тип базового множества не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Source
Проверяет, выполняется ли предикат для всех элементов этого набора.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Source
Применяет 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.
Этот процесс может быть выполнен строго или нестрого (т.е. без вычисления элементов результирующих коллекций). Другими словами, этот метод определяет модель вычисления коллекции.
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как свидетельствует аннотация |
|---|---|
| Классы-предки | MapFactoryDefaults -> IterableOps |
| Унаследовано от | MapFactoryDefaults |
Source
def getOrElse[V1 >: V](key: K, default: => V1): V1
Возвращает значение, связанное с ключом, или значение по умолчанию, если ключ не содержится в карте.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | значение, связанное с |
| Унаследовано от | MapOps |
Source
Разбивает эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает |
Словарь, отображающий ключи на итерируемые коллекции, удовлетворяющий следующему инварианту: (xs groupBy f)(k) = xs filter (x => f(x) == k) То есть, каждый ключ |
| Унаследовано от | IterableOps |
Исходный код
Разделяет эту итерируемую коллекцию на словарь итерируемых коллекций в соответствии с функцией-дискриминатором 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)
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Унаследовано от | 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 |
|---|
Исходный код
Разделяет элементы на итерируемые коллекции фиксированного размера.
| Параметры значений |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые коллекции размера |
| См. также | scala.collection.Iterator, метод |
| Унаследовано от | IterableOps |
Исходный код
Вычисляет значение хэш-кода для объекта.
Алгоритм хэширования по умолчанию зависит от платформы.
Важно отметить, что допускается, что два объекта могут иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.
| Возвращает | значение хэш-кода для этого объекта. |
|---|---|
| Классы определения | Map -> Any |
| Унаследовано от | Map |
Исходный код
Итерируется по inits этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, а промежуточные значения — результатом последовательного применения init.
Примечание: даже при применении к представлению или ленивому набору он всегда будет принудительно генерировать элементы.
| Возвращает | итератор по всем inits этого итерируемого набора |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Исходный код
def isDefinedAt(key: K): Boolean
Проверяет, содержит ли эта карта привязку для ключа. Этот метод, реализующий абстрактный метод тракта PartialFunction, эквивалентен contains.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | MapOps |
Исходный код
override def isTraversableAgain: Boolean
Проверяет, можно ли многократно пройти по этому итерируемому набору. Всегда истинно для Iterables и ложно для Iterators, если не переопределено.
| Возвращает |
|
|---|---|
| Классы определений | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Исходный код
Компаньон-объект этого неизменяемого набора, предоставляющий различные методы создания экземпляров.
| Примечание | При реализации пользовательского типа набора и уточнении |
|---|---|
| Классы определений | Iterable -> Iterable -> IterableOps |
| Унаследовано от | Iterable |
Исходный код
Собирает все ключи этой карты в набор.
| Возвращает | набор, содержащий все ключи этой карты. |
|---|---|
| Классы определений | MapOps -> MapOps |
| Унаследовано от | MapOps |
Исходный код
Возвращает Stepper для ключей этой карты. См. метод stepper.
| Унаследовано от | MapOps |
|---|
Исходный код
Собирает все ключи этой карты в итерируемый набор.
| Возвращает | ключи этой карты в виде итерируемого набора. |
|---|---|
| Унаследовано от | MapOps |
Исходный код
Аналогично 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | декоратор |
| Унаследовано от | Iterable |
Исходный код
Преобразует эту частичную функцию в обычную функцию, возвращающую Option результат.
| Возвращает | функция, которая принимает аргумент |
|---|---|
| См. также | Function.unlift |
| Унаследовано от | PartialFunction |
Исходный код
override def map[B](f: ((K, V)) => B): CC[B]
Создает новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, полученная в результате применения заданной функции |
| Классы определений | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Находит наибольший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наибольший элемент этой коллекции по отношению к порядку |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наибольшим значением, измеренным функцией f, относительно порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наибольший элемент.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее наибольший элемент этой коллекции относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наименьший элемент этой коллекции относительно порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наименьшее значение, измеренное функцией f.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наименьшее значение, измеренное функцией f.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение варианта, содержащего наименьший элемент этой коллекции по отношению к порядку |
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этой коллекции в строке.
Делегирует addString, который может быть переопределен.
| Возвращает | строковое представление этой коллекции. В результирующей строке строковые представления (с точки зрения метода |
|---|---|
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этой коллекции в строке, используя строку-разделитель.
Делегирует addString, который может быть переопределен.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этой коллекции. В результирующей строке строковые представления (с точки зрения метода |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этой коллекции в строке, используя начальную, конечную и разделительные строки.
Делегирует addString, который может быть переопределен.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этой коллекции. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
override protected def newSpecificBuilder: Builder[(K, V), CC[K, V]]
| Возвращает | строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализовать этот метод возможно, но полученный |
|---|---|
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как видно из аннотации |
| Классы определений | MapFactoryDefaults -> IterableOps |
| Унаследовано от | MapFactoryDefaults |
Source
Проверяет, пуст ли коллекция.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Source
Компонует эту частичную функцию с резервной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция, область определения которой является объединением областей определения этой частичной функции и |
| Унаследовано от | PartialFunction |
Source
Пара пар, первая — все элементы, удовлетворяющие предикату 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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пара итерируемых коллекций: первая содержит те значения, которые возвращает |
| Классы определения | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Source
Перемножает элементы этой коллекции.
Примечание: не завершит работу для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | произведение всех элементов этого набора по отношению к оператору |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduce[B >: (K, V)](op: (B, B) => B): B
Применяет заданный ассоциативный бинарный оператор ко всем элементам этого набора.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | Результат применения оператора reduce |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceLeft[B >: (K, V)](op: (B, (K, V)) => B): B
Применяет бинарный оператор ко всем элементам этого набора слева направо.
Примечание: не завершит работу для бесконечных наборов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceLeftOption[B >: (K, V)](op: (B, (K, V)) => B): Option[B]
Возможно применить бинарный оператор ко всем элементам этого набора слева направо.
Примечание: не завершит работу для бесконечных наборов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение-опцию, содержащую результат |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceOption[B >: (K, V)](op: (B, B) => B): Option[B]
Применяет заданный ассоциативный бинарный оператор ко всем элементам этого набора, если они есть.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | Значение типа Option, содержащее результат применения оператора reduce к |
| Унаследовано от | IterableOnceOps |
Источник
def reduceRight[B >: (K, V)](op: ((K, V), B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции, слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | результат вставки |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
def reduceRightOption[B >: (K, V)](op: ((K, V), B) => B): Option[B]
Опционально применяет бинарный оператор ко всем элементам этой коллекции, справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | значение типа Option, содержащее результат |
| Унаследовано от | IterableOnceOps |
Источник
def removedAll(keys: IterableOnce[K]): C
Создаёт новую неизменяемую карту из этой неизменяемой карты, удаляя все элементы другой коллекции.
Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно вычислять элементы.
| Параметры значений |
|
|---|---|
| Возвращает | новая неизменяемая карта, которая содержит все элементы текущей неизменяемой карты, за исключением одного меньше вхождения каждого элемента из |
| Унаследовано от | MapOps |
Источник
| Унаследовано от | IterableOnceOps |
|---|
Источник
Компонует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
за исключением того, что runWith реализуется с помощью applyOrElse и поэтому потенциально более эффективна. Использование runWith позволяет избежать двойного вычисления селекторов и условий для литералов частичных функций.
| Параметры значения |
|
|---|---|
| Возвращает | функция, которая сопоставляет аргументы |
| См. также |
|
| Унаследовано от | PartialFunction |
Источник
def scan[B >: (K, V)](z: B)(op: (B, B) => B): CC[B]
Вычисляет префиксное сканирование элементов коллекции.
Примечание: нейтральный элемент z может применяться более одного раза.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, содержащая префиксное сканирование элементов в этой итерируемой коллекции |
| Унаследовано от | IterableOps |
Источник
override def scanLeft[B](z: B)(op: (B, (K, V)) => B): CC[B]
Создаёт итерируемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Классы определений | 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Унаследовано от | IterableOps |
Источник
Сравнивает размер этой итерируемой коллекции с размером другой Iterable.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < that.size x == 0 if this.size == that.size x > 0 if this.size > that.size Метод, как реализован здесь, не вызывает |
| Унаследовано от | IterableOps |
Источник
Сравнивает размер этого итерируемого набора с тестовым значением.
| Параметры |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < otherSize x == 0 if this.size == otherSize x > 0 if this.size > otherSize Метод в данном реализации не вызывает |
| См. также | |
| Наследуется от | 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 |
|---|
Источник
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их на части, как в grouped).
Возвращаемый итератор будет пустым, если вызван на пустом наборе. Последний элемент, который производит итератор, может быть меньше размера окна, когда исходный набор не исчерпан окном до его конца и его последний элемент не пропущен шагом до него.
| Параметры |
|
|---|---|
| Возвращает | Итератор, производящий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Наследуется от | IterableOps |
Источник
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их на части, как в grouped).
Пустой набор возвращает пустой итератор, а непустой набор, содержащий меньше элементов, чем размер окна, возвращает итератор, который произведёт исходный набор как свой единственный элемент.
| Параметры |
|
|---|---|
| Возвращает | Итератор, производящий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Наследуется от | IterableOps |
Источник
Разделяет этот итерируемый набор на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пара, состоящая из самого длинного префикса этого итерируемого набора элементов, чьи элементы удовлетворяют |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Разделяет этот итерируемый набор элементов на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора элементов не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пару итерируемых наборов элементов, состоящую из первых |
| Определяющие классы | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Возвращает 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 |
|---|
Источник
Суммирует элементы этой коллекции.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумма всех элементов этой коллекции с учетом оператора |
| Унаследовано от | IterableOnceOps |
Источник
Итерирует по хвостам этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результатом последовательного применения tail.
| Возвращает | итератор по всем хвостам этого итерируемого набора |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Выбирает первые n элементов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Параметры |
|
|---|---|
| Возвращает | итерируемый набор, содержащий только первые |
| Унаследовано от | IterableOps |
Источник
Набор, содержащий последние n элементы этого набора.
Примечание: даже при применении к представлению или ленивому набору элементы всегда будут принудительно вычислены.
| Классы определения | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Берет наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Параметры |
|
|---|---|
| Возвращает | наибольший префикс этого итерируемого набора, члены которого удовлетворяют предикату |
| Унаследовано от | IterableOps |
Источник
override def tapEach[U](f: ((K, V)) => U): C
Применяет функцию побочного эффекта к каждому элементу в этом наборе. Строгие наборы немедленно применяют f к своим элементам, в то время как ленивые наборы, такие как представления и LazyLists, применяют f к каждому элементу только тогда, когда этот элемент оценивается, и каждый раз, когда этот элемент оценивается.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | логически тот же набор, что и этот |
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Используя фабрику коллекций factory, преобразуйте этот набор в соответствующее представление для текущего типа элементов A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
| Унаследовано от | IterableOnceOps |
|---|
Источник
Преобразовать набор в массив.
Примечание: НЕ вызывайте Array.from из этого метода.
| Унаследовано от | IterableOnceOps |
|---|
Source
| Inherited from | IterableOnceOps |
|---|
Source
def toIndexedSeq: IndexedSeq[A]
| Inherited from | IterableOnceOps |
|---|
Source
| Inherited from | IterableOnceOps |
|---|
Source
| Definition Classes | Map -> IterableOnceOps |
|---|---|
| Inherited from | Map |
Source
| Возвращает | Этот набор в виде |
|---|---|
| Inherited from | IterableOnceOps |
Source
| Inherited from | IterableOnceOps |
|---|
Source
Возвращает строковое представление объекта.
Представление по умолчанию зависит от платформы.
| Возвращает | строковое представление объекта. |
|---|---|
| Definition Classes | Map -> Функция1 -> Iterable -> Любой |
| Inherited from | Map |
Source
| Inherited from | IterableOnceOps |
|---|
Source
def transform[W](f: (K, V) => W): CC[K, W]
Эта функция преобразует все значения отображений, содержащихся в этом отображении, с помощью функции f.
| Параметры значения |
|
|---|---|
| Возвращает | обновленное отображение |
| Inherited from | MapOps |
Source
Транспонирует это итерируемое множество итерируемых множеств в итерируемое множество итерируемых множеств.
Тип результирующего набора будет определяться статическим типом итерируемого набора. Например:
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))
Примечание: Даже при применении к представлению или ленивому набору элементы всегда будут принудительно вычисляться.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | двумерный итерируемый набор итерируемых наборов, в котором n-я строка содержит n-й столбец этого итерируемого набора. |
| Выбрасывает |
|
| Унаследовано от | IterableOps |
Источник
Попытка извлечь 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))
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | пара итерируемых наборов, содержащих первую и вторую половину каждой пары элементов этого итерируемого набора. |
| Классы-определения | 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))
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | тройку итерируемых наборов, содержащих первый, второй и третий член каждой тройки элементов этого итерируемого набора. |
| Классы-определения | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Обновляет отображение для указанного ключа и его текущего, возможно, сопоставленного значения (Some если есть текущее отображение, None если нет).
Если функция переназначения возвращает Some(v), отображение обновляется с новым значением v. Если функция переназначения возвращает None, отображение удаляется (или остается отсутствующим, если изначально отсутствовало). Если сама функция вызывает исключение, исключение перехватывается, а текущее отображение остается неизменным.
| Параметры значений |
|
|---|---|
| Возвращает | новый массив с обновленным отображением с ключом |
| Унаследовано от | MapOps |
Source
Возвращает Stepper для значений этой карты. См. метод stepper.
| Унаследовано от | MapOps |
|---|
Source
Собирает все значения этой карты в итерируемом наборе.
| Возвращает | значения этой карты в виде итерируемого набора. |
|---|---|
| Унаследовано от | MapOps |
Source
Представление над элементами этого набора.
| Классы-предки | MapOps -> IterableOps |
|---|---|
| Унаследовано от | MapOps |
Source
def withDefault[V1 >: V](d: K => V1): Map[K, V1]
Такая же карта с заданной функцией по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefault.
Вызов методов трансформации (например, map) не сохранит значение по умолчанию.
| Параметры значения |
|
|---|---|
| Возвращает | обёртка карты со значением по умолчанию |
| Унаследовано от | Map |
Source
def withDefaultValue[V1 >: V](d: V1): Map[K, V1]
Такая же карта с заданным значением по умолчанию. Примечание: значение по умолчанию используется только для apply. Другие методы, такие как get, contains, iterator, keys, и т. д., не затрагиваются withDefaultValue.
Вызов методов трансформации (например, map) не сохранит значение по умолчанию.
| Параметры значения |
|
|---|---|
| Возвращает | обёртка карты со значением по умолчанию |
| Унаследовано от | Map |
Source
Создаёт нестрогий фильтр этой карты.
Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новый набор, а второй лишь ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.
Примечание: может возвращать разные результаты при разных запусках, если только тип базового набора не является упорядоченным.
| Параметры значения |
|
|---|---|
| Возвращает | объект класса |
| Классы-предки | MapFactoryDefaults -> IterableOps |
| Унаследовано от | MapFactoryDefaults |
Source
override def zip[B](that: IterableOnce[B]): CC[(A, B)]
Возвращает итерируемую коллекцию, образованную из этой итерируемой коллекции и другой итерируемой коллекции, комбинируя соответствующие элементы парами. Если одна из двух коллекций длиннее другой, оставшиеся элементы игнорируются.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | новая итерируемая коллекция, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps |
| Inherited from | StrictOptimizedIterableOps |
Source
Возвращает итерируемую коллекцию, образованную из этой итерируемой коллекции и другой итерируемой коллекции, комбинируя соответствующие элементы парами. Если одна из двух коллекций короче другой, для расширения более короткой коллекции до длины более длинной используются элементы-заполнители.
| Value parameters |
|
|---|---|
| Returns | новая коллекция типа |
| Inherited from | IterableOps |
Source
override def zipWithIndex: CC[(A, Int)]
Комбинирует эту итерируемую коллекцию со своими индексами.
| Returns | Новая итерируемая коллекция, содержащая пары, состоящие из всех элементов этой итерируемой коллекции, сопоставленных с их индексом. Индексы начинаются с |
|---|---|
| Example | |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Inherited from | StrictOptimizedIterableOps |
Конкретные поля
Source
Source
Размер этой неизменяемой коллекции дерева последовательностей.
Примечание: не будет завершаться для коллекций бесконечного размера.
| 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