Spec-Zone.ru › Scala 3.2

Класс HashMap.HashMap

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

final class HashMap[K, +V] extends AbstractMap[K, V] with StrictOptimizedMapOps[K, V, HashMap, HashMap[K, V]] with MapFactoryDefaults[K, V, HashMap, Iterable] with DefaultSerializable

Этот класс реализует неизменяемые отображения, используя сжатое хэш-массивовое отображение префиксного дерева. Более подробную информацию см. в статье https://michael.steindorfer.name/publications/oopsla15.pdf.

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

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

V

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

Надтипы
25 типов
Трейт DefaultSerializable
Трейт Serializable
Трейт StrictOptimizedMapOps[K, V, HashMap, HashMap[K, V]]
Трейт StrictOptimizedMapOps[K, V, HashMap, HashMap[K, V]]
Трейт StrictOptimizedIterableOps[(K, V), Iterable, HashMap[K, V]]
Класс AbstractMap[K, V]
Трейт Map[K, V]
Трейт MapOps[K, V, HashMap, HashMap[K, V]]
Трейт Iterable[(K, V)]
Класс AbstractMap[K, V]
Трейт Map[K, V]
Трейт Equals
Трейт MapFactoryDefaults[K, V, HashMap, Iterable]
Трейт MapOps[K, V, HashMap, HashMap[K, V]]
Трейт PartialFunction[K, V]
Трейт K => V
Класс AbstractIterable[(K, V)]
Трейт Iterable[(K, V)]
Трейт IterableFactoryDefaults[(K, V), Iterable]
Трейт IterableOps[(K, V), Iterable, HashMap[K, V]]
Трейт IterableOnceOps[(K, V), Iterable, HashMap[K, V]]
Трейт IterableOnce[(K, V)]
Класс Object
Трейт Matchable
Класс Any

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

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

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

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

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

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

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

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

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

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

ключ

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

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

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

Исходный код
override def concat[V1 >: V](that: IterableOnce[(K, V1)]): HashMap[K, V1]

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

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

перебираемый для добавления.

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

новое неизменяемое хэш-отображение, которое содержит все элементы этого неизменяемого хэш-отображения, за которыми следуют все элементы suffix.

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

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

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

Параметры значения
ключ

ключ

Возвращает

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

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

Исходный код
override def drop(n: Int): HashMap[K, V]

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

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

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

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

Возвращает

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

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

Исходный код
override def dropRight(n: Int): HashMap[K, V]

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

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
override def equals(that: 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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Источник
override def getOrElse[V1 >: V](key: K, default: => V1): V1

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

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

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

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

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

key

ключ.

Возвращает

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

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

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

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

Выбирает первый элемент этого неизменяемого отображения хэш-мапа.

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

Возвращает

первый элемент этого неизменяемого отображения хэш-мапа.

Исключения
NoSuchElementException

если неизменяемое отображение хэш-мапа пусто.

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

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

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

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

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

Источник
override def isEmpty: Boolean

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

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

Возвращает

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

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

Источник
def iterator: Iterator[(K, V)]

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

Источник
override def keySet: Set[K]

Собирает все ключи этого отображения в множество.

Возвращает

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

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

Источник
override def keyStepper[S <: Stepper[_]](implicit shape: StepperShape[K, S]): S & EfficientSplit

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

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

Источник
override def keysIterator: Iterator[K]

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

Возвращает

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

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

Источник
override def knownSize: Int

Возвращает

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

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

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

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

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

Возвращает

Последний элемент этого неизменяемого отображения хэш-мапа.

Исключения
NoSuchElementException

Если неизменяемое отображение хэш-мапа пусто.

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

Источник
override def mapFactory: MapFactory[HashMap]

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

Примечание

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

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

Источник
def merged[V1 >: V](that: HashMap[K, V1])(mergef: ((K, V), (K, V1)) => (K, V1)): HashMap[K, V1]

Объединяет этот HashMap с другим HashMap, объединяя все пары ключ-значение обоих карт и делегируя функции объединения для разрешения любых коллизий ключей между двумя HashMap.

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

функция объединения, которая разрешает коллизии между двумя HashMap. Если mergef равно null, то ключи из this перезапишут ключи из that, что делает поведение эквивалентным that.concat(this)

that

HashMap для объединения с этим HashMap

Примечание

В тех случаях, когда mergef возвращает ключи, которые сами коллидируют с другими ключами, возвращаемыми merge, или найденными в this или that, не определено, какая значение будет выбрано. Например: Конфликт нескольких результатов объединения:

// key `3` collides between a result of merging keys `1` and `2`
val left = HashMap(1 -> 1, 2 -> 2)
val right = HashMap(1 -> 1, 2 -> 2)
val merged = left.merged(right){ case (_, (_, v1)) => 3 -> v1 }
  // HashMap(3 -> 2) is returned, but it could also have returned HashMap(3 -> 1)

Конфликт результатов объединения с другими ключами:

// key `2` collides between a result of merging `1`, and existing key `2`
val left = HashMap(1 -> 1, 2 -> 1)
val right = HashMap(1 -> 2)
val merged = left.merged(right)((_,_) => 2 -> 3)
  // HashMap(2 -> 1) is returned, but it could also have returned HashMap(2 -> 3)
Пример
val left = HashMap(1 -> 1, 2 -> 1)
val right = HashMap(2 -> 2, 3 -> 2)
val merged = left.merged(right){ case ((k0, v0), (k1, v1)) => (k0 + k1) -> (v0 + v1) }
  // HashMap(1 -> 1, 3 -> 2, 4 -> 3)

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

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

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

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

Источник
def removed(key: K): HashMap[K, V]

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

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

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

Возвращает

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

Источник
override def removedAll(keys: IterableOnce[K]): HashMap[K, V]

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

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

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

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

Возвращает

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

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

Источник
override def size: Int

Размер этой неизменяемой карты champ hash.

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

Возвращает

количество элементов в этой неизменяемой карте champ hash.

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

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

Разделяет эту неизменяемую карту champ hash на пару префикс/суффикс в соответствии с предикатом.

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

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

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

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

Возвращает

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

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

Источник
override def stepper[S <: Stepper[_]](implicit shape: StepperShape[(K, V), S]): S & EfficientSplit

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

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

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

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

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

  • Для коллекций Long возвращается scala.collection.LongStepper

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

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

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

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

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

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

Источник
override def take(n: Int): HashMap[K, V]

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

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

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

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

Возвращает

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

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

Источник
override def takeRight(n: Int): HashMap[K, V]

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

обновлённая карта

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

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

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

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

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

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

ключ

value

значение

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

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

Source
override def updatedWith[V1 >: V](key: K)(remappingFunction: Option[V] => Option[V1]): HashMap[K, V1]

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

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

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

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

remappingFunction

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

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

Новая карта с обновлённым сопоставлением с ключом

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

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

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

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

Source
override def valuesIterator: Iterator[V]

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

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

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

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

Методы, унаследованные от родительского класса

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

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

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

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

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

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

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

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

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

Source
final def ++[B >: (K, V)](suffix: IterableOnce[B]): CC[B]

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

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

Source
def ++[V2 >: V](xs: IterableOnce[(K, V2)]): CC[K, V2]

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

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

Source
final def -(key: K): C

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

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

Source
final override def --(keys: IterableOnce[K]): C

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

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

Source
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

Source
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

Source
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

Source
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

Источник
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, которая открыта для переопределения в подклассе. См. Programming in Scala, Chapter 28 для обсуждения и проектирования.

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

V2

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Источник
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 flatMap[K2, V2](f: ((K, V)) => IterableOnce[(K2, V2)]): CC[K2, V2]

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

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

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

Возвращает

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

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

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

Source
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

Source
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, если элементы не делятся равномерно.

См. также

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

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

Источник
def headOption: Option[A]

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

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

Возвращает

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

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

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

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

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

Возвращает

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

Пример

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

Источник
def keys: Iterable[K]

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

Возвращает

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

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

Источник
def lastOption: Option[A]

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

опционное значение, содержащее наибольший элемент этой коллекции относительно упорядочения 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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

Source
final def mkString(sep: String): String

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

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

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

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

Возвращает

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

Пример

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

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

Source
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

Source
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

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 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

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

Source
def reduceOption[B >: (K, V)](op: (B, B) => B): Option[B]

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

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

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

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

Значения параметров
op

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

Возвращает

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

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

Source
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

Source
def reduceRightOption[B >: (K, V)](op: ((K, V), B) => B): Option[B]

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

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

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

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

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

Значения параметров
op

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

Возвращает

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

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

Source
protected def reversed: Iterable[A]

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

Source
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 slice(from: Int, until: Int): C

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

from <= indexOf(x) < until

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

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

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

until

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

Возвращает

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

Унаследовано от 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).

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

END_OF_DOCUMENT_MARKER
Параметры значения
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 splitAt(n: Int): (C, C)

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

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

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

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

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

Возвращает

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

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

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

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

Источник
final def toBuffer[B >: (K, V)]: Buffer[B]

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

Источник
def toIndexedSeq: IndexedSeq[A]

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

Источник
def toList: List[A]

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

Источник
final override def toMap[K2, V2](implicit ev: (K, V) <:< (K2, V2)): Map[K2, V2]

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

Источник
def toSeq: Seq[A]

Возвращает

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

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

Источник
def toSet[B >: (K, V)]: Set[B]

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

Источник
override def toString(): String

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

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

Возвращает

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

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

Источник
def toVector: Vector[A]

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

Источник
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 values: Iterable[V]

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

Возвращает

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

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

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

Вид на элементы этой коллекции.

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

Источник
def withDefault[V1 >: V](d: K => V1): Map[K, V1]

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

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

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

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

Возвращает

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

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

Источник
def withDefaultValue[V1 >: V](d: V1): Map[K, V1]

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

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

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

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

Возвращает

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

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

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

Источник
override def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

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

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

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

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

Возвращает

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

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

Источник
def zipAll[A1 >: (K, V), B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

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

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

thatElem

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

thisElem

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

Возвращает

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

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

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

Объединяет этот итерируемый набор с его индексами.

Возвращает

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

Пример

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

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

© 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/HashMap.html

Spec-Zone.ru

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