Spec-Zone.ru › Scala 3.2

Класс MapView.MapValues

Исходный код

class MapValues[K, +V, +W](underlying: SomeMapOps[K, V], f: V => W) extends AbstractMapView[K, W]

Происхождение
17 типов
class AbstractMapView[K, W]
Тракт MapView[K, W]
Тракт MapOps[K, W, <none>, View[(K, W)]]
Тракт PartialFunction[K, W]
Тракт K => W
class AbstractView[(K, W)]
Тракт View[(K, W)]
Тракт Serializable
class AbstractIterable[(K, W)]
Тракт Iterable[(K, W)]
Тракт IterableFactoryDefaults[(K, W), View]
Тракт IterableOps[(K, W), View, View[(K, W)]]
Тракт IterableOnceOps[(K, W), View, View[(K, W)]]
Тракт IterableOnce[(K, W)]
class Object
Тракт Matchable
class Any

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

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

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

Параметры
key

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

Возвращает

опцию, содержащую значение, связанное с key в этом map, или None если нет совпадения.

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

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

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

Возвращает

true если map пуст, false в противном случае.

Определение классов IterableOnceOps

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

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

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

Возвращает

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

Определение классов IterableOnce

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

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

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

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

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

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

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

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

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

Пример:

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

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

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

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

Возвращает

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

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

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

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

Пример:

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

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

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

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

sep

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

Возвращает

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

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

Исходный код
override def addString(sb: StringBuilder, start: String, sep: String, end: String): StringBuilder

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

Пример:

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

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

scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
Параметры
b

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

end

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

sep

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

start

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

Возвращает

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

Определение классов MapOps -> IterableOnceOps
Наследованно из MapOps

Исходный код
def andThen[C](k: PartialFunction[W, C]): PartialFunction[A, C]

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

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

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

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

Параметры
k

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

Возвращает

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

Наследованно из PartialFunction

Исходный код
override def andThen[C](k: W => C): PartialFunction[A, C]

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

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

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

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

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

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

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

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

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

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

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

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

ключ

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

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

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

Источник
override def applyOrElse[K1 <: K, V1 >: W](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 collect[B](pf: PartialFunction[(K, W), B]): CC[B]

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

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

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

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

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

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

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

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

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

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

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

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

V2

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

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

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

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

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

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

Source
def collectFirst[B](pf: PartialFunction[(K, W), B]): Option[B]

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

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

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

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

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

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

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

Пример

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

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

Source
def compose[R](k: PartialFunction[R, K]): PartialFunction[R, B]

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

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

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

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

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

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

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

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

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

Source
def compose[A](g: A => K): A => R

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

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

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

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

функция A => T1

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

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

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

Source
def concat[B >: (K, W)](suffix: IterableOnce[B]): CC[B]

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

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

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

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

объект итерируемый для добавления.

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

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

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

Source
def concat[V2 >: W](suffix: IterableOnce[(K, V2)]): CC[K, V2]

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

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

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

Возвращает

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

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

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

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

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

ключ

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

Исходный код
def corresponds[B](that: IterableOnce[B])(p: ((K, W), B) => Boolean): Boolean

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

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

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

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

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

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

that

другой набор

Возвращает

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

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

Исходный код
def count(p: ((K, W)) => Boolean): Int

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Исходный код
def drop(n: Int): C

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

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

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

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

Возвращает

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

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

Исходный код
def dropRight(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Source
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

Source
override def empty: MapView[K, V]

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

Возвращает

пустую итерируемую последовательность типа C.

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

Source
def exists(p: ((K, W)) => Boolean): Boolean

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

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

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

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

Возвращает

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

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

Source
override def filter(pred: ((K, W)) => Boolean): MapView[K, V]

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

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

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

Возвращает

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

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

Source
override def filterKeys(p: K => Boolean): MapView[K, V]

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

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

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

Возвращает

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

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

Source
override def filterNot(pred: ((K, W)) => Boolean): MapView[K, V]

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

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

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

Возвращает

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

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

Source
def find(p: ((K, W)) => Boolean): Option[A]

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

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

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

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

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

Возвращает

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

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

Источник
def flatMap[B](f: ((K, W)) => 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 к каждому элементу этой итерируемой коллекции и конкатенации результатов.

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

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

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

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

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

Возвращает

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

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

Источник
def flatten[B](implicit asIterable: ((K, W)) => 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.

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

бинарная операция.

z

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

Возвращает

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

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

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

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

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

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

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

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

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

бинарная операция.

z

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Source
protected def fromSpecific(coll: IterableOnce[(K, W)]): CC[A]

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

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

Примечание

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

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

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

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

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

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

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

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

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

key

ключ.

Возвращает

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

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

Source
def groupBy[K](f: ((K, W)) => 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, W)) => K)(f: ((K, W)) => 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, W)) => K)(f: ((K, W)) => 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

Source
def grouped(size: Int): Iterator[C]

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

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

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

Возвращает

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

См. также

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

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

Исходный код
def head: A

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

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

Возвращает

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

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

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

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

Исходный код
def headOption: Option[A]

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

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

Возвращает

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

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

Исходный код
def init: C

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

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

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

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

Возвращает

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

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

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

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

Примечание

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

ключи этой карты в виде представления.

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

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

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

Возвращает

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

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

Исходный код
def last: A

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

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

Возвращает

Последний элемент этой итерируемой коллекции.

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

Если итерируемая коллекция пуста.

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

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

Source
def lift: A => Option[B]

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

Возвращает

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

См. также

Function.unlift

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

Source
def map[B](f: ((K, W)) => B): CC[B]

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

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

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

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

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

Возвращает

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

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

Source
def map[K2, V2](f: ((K, W)) => (K2, V2)): CC[K2, V2]

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

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

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

Возвращает

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

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

Source
def mapFactory: MapViewFactory

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

Примечание

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

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

Source
override def mapValues[W](f: W => W): MapView[K, W]

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

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

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

Возвращает

представление карты, которая сопоставляет каждый ключ этой карты со значением f(this(key)). Результирующая карта оборачивает исходную карту без копирования каких-либо элементов.

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

Source
def max[B >: (K, W)](implicit ord: Ordering[B]): A

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def maxBy[B](f: ((K, W)) => B)(implicit cmp: Ordering[B]): A

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

id="maxByOption-fffff66f"> Источник
def maxByOption[B](f: ((K, W)) => B)(implicit cmp: Ordering[B]): Option[A]

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

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

id="maxOption-fffff45e"> Источник
def maxOption[B >: (K, W)](implicit ord: Ordering[B]): Option[A]

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

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

class="attributes">
Параметры типа
B

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

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

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

Возвращает

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

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

id="min-ffffff34"> Источник
def min[B >: (K, W)](implicit ord: Ordering[B]): A

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

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

class="attributes">
Параметры типа
B

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def minByOption[B](f: ((K, W)) => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

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

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

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

Source
def minOption[B >: (K, W)](implicit ord: Ordering[B]): Option[A]

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

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

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

Тип, для которого определён порядок.

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

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

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

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

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

Source
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

Исходный код
protected def newSpecificBuilder: Builder[A, CC[A]]

Возвращает

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

Примечание

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

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

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

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

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

Возвращает

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

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

Исходный код
def orElse[A1 <: K, B1 >: W](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

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

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

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

B1

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

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

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

Возвращает

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

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

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

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

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

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

Исходный код
def partitionMap[A1, A2](f: ((K, W)) => 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.

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

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

Умножает элементы этой коллекции.

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Издает исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Source
def scan[B >: (K, W)](z: B)(op: (B, B) => B): CC[B]

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
def scanLeft[B](z: B)(op: (B, (K, W)) => B): CC[B]

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
def scanRight[B](z: B)(op: ((K, W), B) => B): CC[B]

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

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

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

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

Пример:

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

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

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

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

z

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

Возвращает

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

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

Source
def size: Int

Размер этой коллекции.

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

Возвращает

количество элементов в этой коллекции.

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

Source
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

Source
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

Source
final def sizeIs: SizeCompareOps

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

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

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

Source
def slice(from: Int, until: Int): C

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

from <= indexOf(x) < until

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

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

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

until

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

Возвращает

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

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

Source
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

Source
def sliding(size: Int): Iterator[C]

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

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

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

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

Возвращает

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

См. также

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

Пример

List().sliding(2) = empty iterator

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

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

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

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

Source
def span(p: ((K, W)) => Boolean): (C, C)

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

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

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

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

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

Возвращает

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

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

Source
override def splitAt(n: Int): (C, C)

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

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

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

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

позиция разделения.

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Source
def sum[B >: (K, W)](implicit num: Numeric[B]): B

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

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

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

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

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

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

Возвращает

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

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

Source
def tail: C

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

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

Source
def tails: Iterator[C]

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

Возвращает

итератор по всем хвостам этой итерируемой коллекции

Пример

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

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

Source
def take(n: Int): C

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

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

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

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

Возвращает

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

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

Source
def takeRight(n: Int): C

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

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

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

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

Возвращает

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

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

Source
def takeWhile(p: ((K, W)) => Boolean): C

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

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

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

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

Возвращает

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

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

Source
override def tapEach[U](f: ((K, W)) => U): MapView[K, V]

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

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

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

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

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

Возвращает

такая же логическая коллекция, как и эта

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

Source
def to[C1](factory: Factory[(K, W), C1]): C1

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

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Источник
def toArray[B >: (K, W) : ClassTag]: Array[B]

Преобразовать коллекцию в массив.

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Преобразует это представление в строку.

Возвращает

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

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

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

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

Источник
def transpose[B](implicit asIterable: ((K, W)) => 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

Источник
def unzip[A1, A2](implicit asPair: ((K, W)) => (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

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

Возвращает

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

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

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

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

Возвращает

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

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

Источник
def valueStepper[S <: Stepper[_]](implicit shape: StepperShape[W, S]): S

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

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

Источник
override def values: Iterable[V]

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

Возвращает

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

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

Источник
def valuesIterator: Iterator[V]

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

Возвращает

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

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

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

Представление элементов этой коллекции.

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

Источник
override def withFilter(p: ((K, W)) => Boolean): WithFilter[K, V, View, <none>]

Создаёт нестрогий фильтр этого представления.

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

thatElem

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

thisElem

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

Возвращает

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

Если это итеративное множество короче that, для заполнения результата используются значения thisElem. Если that короче, чем это итеративное множество, для заполнения результата используются значения thatElem.

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

Источник
def zipWithIndex: CC[(A, Int)]

Объединяет это итеративное множество с его индексами.

Возвращает

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

Пример

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

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

© 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/MapView$$MapValues.html

Spec-Zone.ru

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