Spec-Zone.ru › Scala 3.2

Класс View.FlatMap

Исходный код

class FlatMap[A, B](underlying: SomeIterableOps[A], f: A => IterableOnce[B]) extends AbstractView[B]

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

Супертипы
class AbstractView[B]
Трейт View[B]
Трейт Serializable
class AbstractIterable[B]
Трейт Iterable[B]
Трейт IterableFactoryDefaults[B, View]
Трейт IterableOps[B, View, View[B]]
Трейт IterableOnceOps[B, View, View[B]]
Трейт IterableOnce[B]
class Object
Трейт Matchable
class Any

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

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

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

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

Возвращает

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

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

Исходный код
def iterator: Iterator[B]

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

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

Возвращает

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

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

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

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

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

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

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

Источник
def addString(b: 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, в который были добавлены элементы.

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
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: B => Boolean): C

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

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

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

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

Возвращает

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

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

Источник
override def empty: View[A]

Пустая итерируемая коллекция того же типа, что и эта.

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def filter(pred: B => Boolean): C

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

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

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

Возвращает

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

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

Source
def filterNot(pred: B => Boolean): C

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

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

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

Возвращает

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

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

Source
def find(p: B => Boolean): Option[A]

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

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

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

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

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

Возвращает

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

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

Source
def flatMap[B](f: B => 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

Source
def flatten[B](implicit asIterable: B => 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

Source
def fold[A1 >: B](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, B) => B): B

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Источник
def forall(p: B => Boolean): Boolean

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

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

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

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

Возвращает

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

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

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

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

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

Источник
protected def fromSpecific(coll: IterableOnce[B]): CC[A]

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

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

Примечание

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

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

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

Исходный код
def groupBy[K](f: B => K): Map[K, C]

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

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

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

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

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

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

Возвращает

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

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

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

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

Исходный код
def groupMap[K, B](key: B => K)(f: B => B): Map[K, CC[B]]

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

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

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

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

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

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

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

K

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

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

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

key

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

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

Исходный код
def groupMapReduce[K, B](key: B => K)(f: B => B)(reduce: (B, B) => B): Map[K, B]

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

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

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

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

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

Исходный код
def grouped(size: Int): Iterator[C]

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

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

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

Возвращает

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

См. также

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

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

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

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

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

Возвращает

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

Исходный код
def maxOption[B >: B](implicit ord: Ordering[B]): Option[A]

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

Исходный код
def minOption[B >: B](implicit ord: Ordering[B]): Option[A]

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

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

sep

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

start

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

Возвращает

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

Пример

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

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

Источник
protected def newSpecificBuilder: Builder[A, CC[A]]

Возвращает

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

Примечание

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

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

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

Источник
def nonEmpty: Boolean

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

Возвращает

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

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

Источник
def partition(p: B => Boolean): (C, C)

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключение
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключение
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Пример:

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

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

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

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

z

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

Возвращает

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

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

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

Размер этого набора.

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

Возвращает

количество элементов в этом наборе.

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

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

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

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

набор, размер которого сравнивается с размером этого набора.

Возвращает

Значение 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: B => 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[B, S]): S

Возвращает scala.collection.Stepper для элементов этого множества.

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

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

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

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

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

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

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

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

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

Суммирует элементы этого множества.

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

Type parameters
B

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

Value parameters
num

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

Returns

сумма всех элементов этого набора с учетом оператора + в num.

Inherited from IterableOnceOps

Source
def tail: C

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

Inherited from IterableOps

Source
def tails: Iterator[C]

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

Returns

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

Example

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

Inherited from IterableOps

Source
def take(n: Int): C

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

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

Value parameters
n

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

Returns

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

Inherited from IterableOps

Source
def takeRight(n: Int): C

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

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

Value parameters
n

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

Returns

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

Inherited from IterableOps

Source
def takeWhile(p: B => Boolean): C

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOps

Source
override def tapEach[U](f: B => U): C

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

Type parameters
U

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

Value parameters
f

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

Returns

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

Definition Classes IterableOps -> IterableOnceOps
Inherited from IterableOps

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

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

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

Inherited from IterableOnceOps

Source
def toArray[B >: B : ClassTag]: Array[B]

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

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

Inherited from IterableOnceOps

Source
final def toBuffer[B >: B]: Buffer[B]

Inherited from IterableOnceOps

Source
def toIndexedSeq: IndexedSeq[A]

Inherited from IterableOnceOps

Source
def toList: List[A]

Inherited from IterableOnceOps

Source
def toMap[K, V](implicit ev: B <:< (K, V)): Map[K, V]

Inherited from IterableOnceOps

Source
def toSeq: Seq[A]

Returns

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

Inherited from IterableOnceOps

Source
def toSet[B >: B]: Set[B]

Inherited from IterableOnceOps

Source
override def toString: String

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

Returns

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

Definition Classes View -> Iterable -> Any
Inherited from View

Source
def toVector: Vector[A]

Inherited from IterableOnceOps
END_OF_DOCUMENT_MARKER

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

Источник
override def view: View[A]

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

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

Источник
def withFilter(p: B => Boolean): WithFilter[A, CC]

Создает нестрогое фильтрование этого итерируемого множества.

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def zipAll[A1 >: B, 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/View$$FlatMap.html

Spec-Zone.ru

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