Spec-Zone.ru › Scala 3.1

Класс scala.collection.FlatMap

Исходный код

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

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

Надтипы
класс AbstractView[B]
тракт View[B]
тракт Serializable
класс AbstractIterable[B]
тракт Iterable[B]
тракт IterableFactoryDefaults[B, View]
тракт IterableOps[B, View, View[B]]
тракт IterableOnceOps[B, View, View[B]]
тракт IterableOnce[B]
класс Object
тракт Matchable
класс Any

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

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

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

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

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

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

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

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

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

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

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

Исходный код@inline
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 и разделитель. Текст, который будет написан, начинается со строки 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]): View[B]

Унаследовано от 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]): View[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

Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: B](xs: Array[B], start: Int): Int

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: B](xs: Array[B]): Int

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

Source
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

Source
def count(p: B => Boolean): Int

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

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

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

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

Возвращает

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

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

Source
def drop(n: Int): View[B]

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

Source
def dropRight(n: Int): View[B]

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

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

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

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

Возвращает

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

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

Источник
def dropWhile(p: B => Boolean): View[B]

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Источник
def filterNot(pred: B => Boolean): View[B]

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

Источник
def find(p: B => Boolean): Option[B]

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

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

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

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

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

Возвращает

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

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

Источник
def flatMap[B](f: B => IterableOnce[B]): View[B]

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

Источник
def flatten[B](implicit asIterable: B => IterableOnce[B]): View[B]

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

Source
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

Source
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

Source
def forall(p: B => Boolean): Boolean

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

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

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

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

Возвращает

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

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

Source
def foreach[U](f: B => U): Unit

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

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

Source
protected def fromSpecific(coll: IterableOnce[B]): View[B]

Inherited from IterableFactoryDefaults

Source
def groupBy[K](f: B => K): Map[K, View[B]]

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

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

Type parameters
K

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

Value parameters
f

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

Returns

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

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

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

Inherited from IterableOps

Source
def groupMap[K, B](key: B => K)(f: B => B): Map[K, View[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)

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

Type parameters
B

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

K

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

Value parameters
f

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

key

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

Inherited from IterableOps

Source
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)(_ + _)

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

Inherited from IterableOps

Source
def grouped(size: Int): Iterator[View[B]]

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

Value parameters
size

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

Returns

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

See also

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

Inherited from IterableOps

Source
def head: B

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def init: View[B]

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

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

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

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

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

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

Возвращает

итератор по всем начальным частям (inits) этого итерируемого набора

Пример

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Исходный код
def lastOption: Option[B]

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

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

Возвращает

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

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

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

Аналогично 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): View[B]

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
def min[B >: B](implicit ord: Ordering[B]): B

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def minBy[B](f: B => B)(implicit cmp: Ordering[B]): B

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

Source
def minOption[B >: B](implicit ord: Ordering[B]): Option[B]

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

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

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

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

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

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

Возвращает

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

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

Source@inline
final def mkString: String

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

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

Возвращает

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

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

Source@inline
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[B, View[B]]

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

Источник@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
def nonEmpty: Boolean

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

Возвращает

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

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

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

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

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

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

Источник
def partitionMap[A1, A2](f: B => Either[A1, A2]): (View[A1], View[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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
protected def reversed: Iterable[B]

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

Источник
def scanRight[B](z: B)(op: (B, B) => B): View[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

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

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

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

Возвращает

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Метод, как реализован здесь, не вызывает size напрямую; его время выполнения — O(this.size min that.size), а не O(this.size + that.size). Метод следует переопределять, если вычисление size быстро и knownSize возвращает -1.

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

Источник
def sizeCompare(otherSize: Int): Int

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

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

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

Возвращает

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Метод, как реализован здесь, не вызывает size напрямую; его время выполнения — O(size min otherSize), а не O(size). Метод следует переопределять, если вычисление size быстро и knownSize возвращает -1.

См. также

sizeIs

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

Источник@inline
final def sizeIs: SizeCompareOps

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

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

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

Источник
def slice(from: Int, until: Int): View[B]

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

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

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

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

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

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

step

расстояние между первыми элементами последовательных групп

Возвращает

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

См. также

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

Пример

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

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

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

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

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

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

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

Источник
override def splitAt(n: Int): (View[B], View[B])

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

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

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

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

Суммирует элементы этого набора.

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

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

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

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

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

Возвращает

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

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

Источник
def tail: View[B]

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

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

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

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

Возвращает

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

Пример

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

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

Источник
def take(n: Int): View[B]

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

Источник
def takeRight(n: Int): View[B]

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

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

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

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

Возвращает

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

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

Источник
def takeWhile(p: B => Boolean): View[B]

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

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

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

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

Возвращает

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

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

Источник
override def tapEach[U](f: B => U): View[B]

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

Источник
def to[C1](factory: Factory[B, C1]): C1

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

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

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

Источник
def toArray[B >: B : ClassTag]: Array[B]

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

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

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

Источник@inline
final def toBuffer[B >: B]: Buffer[B]

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def toSet[B >: B]: Set[B]

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

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

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

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

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

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

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

Исходный код
def withFilter(p: B => Boolean): WithFilter[B, View]

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

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

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

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

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

Возвращает

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

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

Исходный код
def zip[B](that: IterableOnce[B]): View[(B, B)]

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

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

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

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

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

Возвращает

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

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

Исходный код
def zipAll[A1 >: B, B](that: Iterable[B], thisElem: A1, thatElem: B): View[(A1, B)]

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

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

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

thatElem

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

thisElem

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

Возвращает

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

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

Исходный код
def zipWithIndex: View[(B, Int)]

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

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/collection/View$$FlatMap.html

Spec-Zone.ru

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