Spec-Zone.ru › Scala 3.1

Класс scala.collection.immutable.Stream

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

@deprecated("Используйте LazyList (полностью ленивый) вместо Stream (только леничный хвост)", "2.13.0") @SerialVersionUID(3L)
sealed abstract class Stream[+A] extends AbstractSeq[A] with LinearSeq[A] with LinearSeqOps[A, Stream, Stream[A]] with IterableFactoryDefaults[A, Stream] with Serializable

Устаревший
Супертипы
24 типа
интерфейс Serializable
интерфейс LinearSeq[A]
интерфейс LinearSeqOps[A, Stream, Stream[A]]
интерфейс LinearSeq[A]
интерфейс LinearSeqOps[A, Stream, Stream[A]]
класс AbstractSeq[A]
интерфейс Seq[A]
интерфейс SeqOps[A, Stream, Stream[A]]
интерфейс Iterable[A]
класс AbstractSeq[A]
интерфейс Seq[A]
интерфейс Equals
интерфейс SeqOps[A, Stream, Stream[A]]
интерфейс PartialFunction[Int, A]
интерфейс Int => A
класс AbstractIterable[A]
интерфейс Iterable[A]
интерфейс IterableFactoryDefaults[A, Stream]
интерфейс IterableOps[A, Stream, Stream[A]]
интерфейс IterableOnceOps[A, Stream, Stream[A]]
интерфейс IterableOnce[A]
класс Object
интерфейс Matchable
класс Any
Известные подтипы
класс Cons[A]
объект Empty.type

Абстрактные методы

Исходный код
def force: Stream[A]

Вынуждает вычисление всего Stream и возвращает его.

Возвращает

Полностью реализованное Stream.

Примечание

Часто мы используем Stream для представления бесконечного множества или ряда. Если это относится к вашему конкретному Stream, то эта функция никогда не вернется и, вероятно, аварийно завершит работу виртуальной машины с исключением OutOfMemory. Однако эта функция не зависнет на конечном цикле.

Исходный код
def tail: Stream[A]

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

Исходный код
def #::[B >: A](elem: B): Stream[B]

Неявный добавление toDeferrer

Создаёт Stream, состоящий из данного первого элемента и элементов из другого Stream.

Исходный код
def #:::[B >: A](prefix: Stream[B]): Stream[B]

Неявный добавление toDeferrer

Создаёт Stream, состоящий из конкатенации данного Stream и другого Stream.

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

Добавляет все элементы этой неизменяемой последовательности в строковый билдер, используя начальную, конечную и разделительные строки. Текст начинается со строки start и заканчивается строкой end. Между элементами неизменяемой последовательности вставляются строковые представления (относительно метода toString) элементов, разделенные строкой sep.

Неопределённые элементы представлены как "_", неопределённый хвост как "<not computed>", а циклы как "<cycle>".

Параметры
end

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

sb

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

sep

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

start

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

Возвращает

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

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

Исходный код@tailrec
final override def collect[B](pf: PartialFunction[A, B]): Stream[B]

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

Исходный код@tailrec
final override def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

Исходный код
override def filter(pred: A => Boolean): Stream[A]

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

Исходный код
override def filterNot(pred: A => Boolean): Stream[A]

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

Исходный код@tailrec
final override def find(p: A => Boolean): Option[A]

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

Исходный код
final override def flatMap[B](f: A => IterableOnce[B]): Stream[B]

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

Исходный код@tailrec
final override def foldLeft[B](z: B)(op: (B, A) => B): B

Специализация foldLeft для Stream, которая позволяет сборщику мусора работать по мере необходимости.

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

Тип накапливаемого значения.

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

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

z

Начальное значение, подаваемое в функцию op.

Возвращает

Накопленное значение от последовательных применений op.

Классы определения LinearSeqOps -> IterableOnceOps

Источник@tailrec
final override def foreach[U](f: A => U): Unit

Применение данной функции f к каждому элементу этой линейной последовательности (с соблюдением порядка элементов).

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

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

Примечание

Переопределено здесь как final для запуска оптимизации хвостовой рекурсии, которая заменяет 'this' на 'tail' на каждой итерации. Это абсолютно необходимо для того, чтобы GC мог собирать подлежащий Stream по мере потребления элементов.

Эта функция заставит реализоваться весь Stream, если только f не выбросит исключение.

Классы определения LinearSeqOps -> IterableOnceOps

Источник
override def iterableFactory: SeqFactory[Stream]

Классы определения LinearSeq -> LinearSeq -> Seq -> Iterable -> Seq -> Iterable -> IterableOps

Источник
def lazyAppendedAll[B >: A](suffix: => IterableOnce[B]): Stream[B]

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

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

Коллекция, добавляемая к этому потоку.

Возвращает

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

Источник
final override def map[B](f: A => B): Stream[B]

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

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

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

Источник
final override def prepended[B >: A](elem: B): Stream[B]

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

Источник
final override def reduceLeft[B >: A](f: (B, A) => B): B

Специализация Stream для reduceLeft, которая позволяет GC собирать по пути.

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

Тип накапливаемого значения.

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

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

Возвращает

Накопленное значение от последовательных применений f.

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

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

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

Источник
override def take(n: Int): Stream[A]

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

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

Возвращает

Строковое представление этой коллекции. Неопределенные элементы представлены "_", неопределенный хвост представлен "<not computed>", а циклы представлены "<cycle>". Примеры:

  • "Stream(_, <not computed>)", непустой поток, чья голова не была вычислена;

  • "Stream(_, 1, _, <not computed>)", поток с как минимум тремя элементами, второй из которых был вычислен;

  • "Stream(1, 2, 3, <cycle>)", бесконечный поток, содержащий цикл на четвертом элементе.

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

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

Фильтр collection.WithFilter, который позволяет GC собрать голову потока во время обработки

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

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

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

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

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

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

Источник@inline
final def ++[B >: A](suffix: IterableOnce[B]): Stream[B]

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

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

Источник@inline
final override def ++:[B >: A](prefix: IterableOnce[B]): Stream[B]

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

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

Источник@inline
final def +:[B >: A](elem: B): Stream[B]

Псевдоним для prepended.

Обратите внимание, что операторы с окончанием :- являются правоассоциативными (см. пример). Мемоническое правило для +: против :+ заключается в следующем: двоеточие ставится со стороны коллекции.

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

Источник@inline
final def :+[B >: A](elem: B): Stream[B]

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

Обратите внимание, что операторы с окончанием двоеточием являются правоассоциативными (см. пример). Мnemonic для +: vs. :+ таков: двоеточие ставится со стороны коллекции.

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

Источник@inline
final def :++[B >: A](suffix: IterableOnce[B]): Stream[B]

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

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

Источник@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 andThen[C](k: PartialFunction[A, C]): PartialFunction[Int, C]

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

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

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

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

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

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

Возвращает

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

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

Источник
override def andThen[C](k: A => C): PartialFunction[Int, C]

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

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

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

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

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

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

Возвращает

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

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

Источник
def appended[B >: A](elem: B): Stream[B]

Копия этой последовательности с добавленным элементом.

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

Пример:

scala> val a = List(1)
a: List[Int] = List(1)

scala> val b = a :+ 2
b: List[Int] = List(1, 2)

scala> println(a)
List(1)
Параметры типа
B

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

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

добавляемый элемент

Возвращает

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

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

Источник
def appendedAll[B >: A](suffix: IterableOnce[B]): Stream[B]

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

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

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

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

коллекция для добавления.

Возвращает

новая коллекция типа CC[B], которая содержит все элементы этой последовательности, за которыми следуют все элементы suffix.

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

Источник@throws(scala.throws.$lessinit$greater$default$1[scala.IndexOutOfBoundsException])
override def apply(n: Int): A

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

Источник
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1

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

Обратите внимание, что выражение pf.applyOrElse(x, default) эквивалентно

if(pf isDefinedAt x) pf(x) else default(x)

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

- объединение частичных функций в цепочки orElse/andThen не приводит к чрезмерной оценке apply/isDefinedAt - lift и unlift не оценивают исходные функции дважды при каждом вызове - runWith позволяет эффективно объединять частичные функции с условными действиями императивного стиля

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

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

функция по умолчанию

x

аргумент функции

Возвращает

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

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

Источник
def canEqual(that: Any): Boolean

Унаследовано от Seq
END_OF_DOCUMENT_MARKER

Source
def combinations(n: Int): Iterator[Stream[A]]

Итерирует по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке. Таким образом, "xy" и "yy" являются комбинациями длины 2 "xyy", но "yx" нет. Если существует более одного способа сгенерировать одну и ту же подпоследовательность, будет возвращена только одна.

Например, "xyyy" имеет три различных способа сгенерировать "xy" в зависимости от того, какой первый, второй или третий "y" выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трёх будет выбран — это деталь реализации, которая не определена.

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

Возвращает

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

Пример

"abbbc".combinations(2) = Iterator(ab, ac, bb, bc)

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

Source
def compose[R](k: PartialFunction[R, Int]): PartialFunction[R, A]

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

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

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

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

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

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

Возвращает

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

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

Source@unspecialized
def compose[A](g: A => Int): A => A

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

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

тип, к которому может быть применена функция g

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

функция A => T1

Возвращает

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

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

Source@inline
final override def concat[B >: A](suffix: IterableOnce[B]): Stream[B]

Классы-определения SeqOps -> IterableOps
Наследуется от SeqOps

Source
override def contains[A1 >: A](elem: A1): Boolean

Классы-определения LinearSeqOps -> SeqOps
Наследуется от LinearSeqOps

Source
def containsSlice[B >: A](that: Seq[B]): Boolean

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

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

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

исследуемая последовательность

Возвращает

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

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

Source
def copyToArray[B >: A](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 >: A](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 >: A](xs: Array[B]): Int

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

Source
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

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

that

другая последовательность

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def diff[B >: A](that: Seq[B]): Stream[A]

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

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

последовательность элементов для удаления

Возвращает

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

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

Источник
def distinct: Stream[A]

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

Возвращает

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

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

Источник
def distinctBy[B](f: A => B): Stream[A]

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

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

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

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

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

Возвращает

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

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

Источник
def drop(n: Int): Stream[A]

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

Источник
def dropRight(n: Int): Stream[A]

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

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

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

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

Возвращает

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

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

Исходный код
def dropWhile(p: A => Boolean): Stream[A]

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

Исходный код
def elementWise: ElementWiseExtractor[Int, A]

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

Пример
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
  case firstChar.unlift.elementWise(c0, c1, c2) =>
    println(s"$c0, $c1, $c2") // Output: f, b, b
}
Унаследовано от PartialFunction

Исходный код
override def empty: Stream[A]

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

Исходный код
def endsWith[B >: A](that: Iterable[B]): Boolean

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

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

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

тестируемая последовательность

Возвращает

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

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

Исходный код
override def equals(o: Any): Boolean

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

Исходный код
override def exists(p: A => Boolean): Boolean

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

Исходный код
override def findLast(p: A => Boolean): Option[A]

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

Source
def flatten[B](implicit asIterable: A => IterableOnce[B]): Stream[B]

Inherited from IterableOps

Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

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

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

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

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

z

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

Возвращает

результат применения оператора слияния op между всеми элементами и z, или z, если этот набор данных пустой.

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
override def forall(p: A => Boolean): Boolean

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

Source
protected def fromSpecific(coll: IterableOnce[A]): Stream[A]

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

Source
def groupBy[K](f: A => K): Map[K, Stream[A]]

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

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

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

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

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

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

Возвращает

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

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

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

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

Source
def groupMap[K, B](key: A => K)(f: A => B): Map[K, Stream[B]]

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

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

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

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

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

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

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

K

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

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

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

key

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

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

Source
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]

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

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

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

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

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

Source
def grouped(size: Int): Iterator[Stream[A]]

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

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

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

Возвращает

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

См. также

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

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

Source
override def hashCode(): Int

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

Source
def head: A

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

Source
override def headOption: Option[A]

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

Source@deprecatedOverriding("Override indexOf(elem, from) instead - indexOf(elem) calls indexOf(elem, 0)", "2.13.0")
def indexOf[B >: A](elem: B): Int

Находит индекс первого вхождения некоторого значения в этой последовательности.

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

тип элемента elem.

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

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

Возвращает

индекс >= 0 первого элемента этой последовательности, равного (как определяется ==) elem, или -1, если такового нет.

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

Источник
def indexOf[B >: A](elem: B, from: Int): Int

Находит индекс первого вхождения некоторого значения в этой последовательности после или на некотором начальном индексе.

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

тип элемента elem.

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

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

from

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

Возвращает

индекс >= from первого элемента этой последовательности, равного (как определяется ==) elem, или -1, если такового нет.

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

Источник@deprecatedOverriding("Override indexOfSlice(that, from) instead - indexOfSlice(that) calls indexOfSlice(that, 0)", "2.13.0")
def indexOfSlice[B >: A](that: Seq[B]): Int

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

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

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

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

Возвращает

первый индекс >= 0 такой, что элементы этой последовательности, начинающиеся с этого индекса, совпадают с элементами последовательности that, или -1, если такой подпоследовательности не существует.

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

Источник
def indexOfSlice[B >: A](that: Seq[B], from: Int): Int

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

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

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

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

that

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

Возвращает

первый индекс >= from такой, что элементы этой последовательности, начинающиеся с этого индекса, совпадают с элементами последовательности that, или -1, если такой подпоследовательности не существует.

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

Источник
override def indexWhere(p: A => Boolean, from: Int): Int

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

Источник@deprecatedOverriding("Override indexWhere(p, from) instead - indexWhere(p) calls indexWhere(p, 0)", "2.13.0")
def indexWhere(p: A => Boolean): Int

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

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

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

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

Возвращает

индекс >= 0 первого элемента этой последовательности, удовлетворяющего предикату p, или -1, если такового нет.

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

Источник
def indices: Range

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

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

Возвращает

значение Range от 0 до значения на единицу меньше длины этой последовательности.

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

Источник
def init: Stream[A]

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

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

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

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

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

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

Возвращает

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

Пример

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

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

Источник
def intersect[B >: A](that: Seq[B]): Stream[A]

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

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

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

Возвращает

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

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

Источник
override def isDefinedAt(x: Int): Boolean

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

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

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

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

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

Источник
def iterator: Iterator[A]

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

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

Возвращает

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

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

Source
override def last: A

Definition Classes LinearSeqOps -> IterableOps
Inherited from LinearSeqOps

Source
def lastIndexOf[B >: A](elem: B, end: Int): Int

Находит индекс последнего вхождения некоторого значения в эту последовательность до или на заданном индексе конца.

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

Type parameters
B

тип элемента elem.

Value parameters
elem

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

end

индекс конца.

Returns

индекс <= end последнего элемента этой последовательности, который равен (как определяется ==) elem, или -1, если такового нет.

Inherited from SeqOps

Source@deprecatedOverriding("Override lastIndexOfSlice(that, end) instead - lastIndexOfSlice(that) calls lastIndexOfSlice(that, Int.MaxValue)", "2.13.0")
def lastIndexOfSlice[B >: A](that: Seq[B]): Int

Находит последний индекс, где эта последовательность содержит заданную последовательность в качестве среза.

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

Value parameters
that

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

Returns

последний индекс, такой что элементы этой последовательности, начиная с этого индекса, совпадают с элементами последовательности that, или -1, если такой подпоследовательности не существует.

Inherited from SeqOps

Source
def lastIndexOfSlice[B >: A](that: Seq[B], end: Int): Int

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

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

Value parameters
end

индекс конца

that

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

Returns

последний индекс <= end такой, что элементы этой последовательности, начинающиеся с этого индекса, совпадают с элементами последовательности that, или -1, если такой подпоследовательности не существует.

Inherited from SeqOps

Source
override def lastIndexWhere(p: A => Boolean, end: Int): Int

Definition Classes LinearSeqOps -> SeqOps
Inherited from LinearSeqOps

Source@deprecatedOverriding("Override lastIndexWhere(p, end) instead - lastIndexWhere(p) calls lastIndexWhere(p, Int.MaxValue)", "2.13.0")
def lastIndexWhere(p: A => Boolean): Int

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

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

Value parameters
p

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

Returns

индекс последнего элемента этой последовательности, удовлетворяющего предикату p, или -1, если такового нет.

Inherited from SeqOps

Source
def lastOption: Option[A]

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

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

Returns

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

Inherited from IterableOps

Source
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Stream[A]]

Аналогично 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)
Type parameters
B

тип второго элемента в каждой потенциальной паре

Value parameters
that

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

Returns

декоратор LazyZip2, который позволяет выполнять строгие операции над лениво вычисляемыми парами или цепочками вызовов lazyZip. Также поддерживается неявное преобразование в Iterable[(A, B)].

Inherited from Iterable

Source
def length: Int

Inherited from LinearSeqOps

Source
override def lengthCompare(that: Iterable[_]): Int

Definition Classes LinearSeqOps -> SeqOps
Inherited from LinearSeqOps

Source
override def lengthCompare(len: Int): Int

Definition Classes LinearSeqOps -> SeqOps
Inherited from LinearSeqOps

Source@inline
final def lengthIs: SizeCompareOps

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

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

this.lengthIs < len     // this.lengthCompare(len) < 0
this.lengthIs <= len    // this.lengthCompare(len) <= 0
this.lengthIs == len    // this.lengthCompare(len) == 0
this.lengthIs != len    // this.lengthCompare(len) != 0
this.lengthIs >= len    // this.lengthCompare(len) >= 0
this.lengthIs > len     // this.lengthCompare(len) > 0
Inherited from SeqOps

Source
def lift: Int => Option[A]

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

Returns

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

See also

Function.unlift

Inherited from PartialFunction

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

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

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

Type parameters
B

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

Value parameters
ord

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

Returns

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

Throws
UnsupportedOperationException

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
cmp

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

f

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

Returns

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

Throws
UnsupportedOperationException

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
cmp

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

f

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

Returns

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
ord

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

Returns

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
ord

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

Returns

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

Throws
UnsupportedOperationException

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
cmp

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

f

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

Returns

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

Throws
UnsupportedOperationException

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
cmp

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

f

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

Returns

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

Inherited from IterableOnceOps

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

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

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

Type parameters
B

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

Value parameters
ord

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

Returns

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

Inherited from IterableOnceOps

Source@inline
final def mkString: String

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

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

Returns

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

Inherited from IterableOnceOps

Source@inline
final def mkString(sep: String): String

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

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

Value parameters
sep

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

Returns

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

Example

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

Inherited from IterableOnceOps

Source
final def mkString(start: String, sep: String, end: String): String

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

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

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

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

sep

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

start

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

Возвращает

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

Пример

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

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

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

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

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

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

Возвращает

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

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

Источник
def orElse[A1 <: Int, B1 >: A](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

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

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

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

B1

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

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

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

Возвращает

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

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

Источник
def padTo[B >: A](len: Int, elem: B): Stream[B]

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

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

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

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

значение заполнения

len

целевая длина

Возвращает

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

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

Источник
def partitionMap[A1, A2](f: A => Either[A1, A2]): (Stream[A1], Stream[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 patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int): Stream[B]

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

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

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

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

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

индекс первого заменяемого элемента

other

заменяющая последовательность

replaced

количество элементов для удаления в исходной последовательности

Возвращает

новая последовательность, содержащая все элементы этой последовательности, за исключением того, что replaced элементы, начиная с from, заменяются всеми элементами other.

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

Источник
def permutations: Iterator[Stream[A]]

Итерирует по различным перестановкам.

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

Возвращает

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

Пример

"abb".permutations = Iterator(abb, bab, bba)

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

Источник
def prependedAll[B >: A](prefix: IterableOnce[B]): Stream[B]

Аналогично :++, возвращает новый набор, содержащий элементы из левого операнда, за которыми следуют элементы из правого операнда.

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

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

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

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

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

Возвращает

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

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

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

Перемножает элементы этого набора.

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def reverse: Stream[A]

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

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

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

Возвращает

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

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

Источник
def reverseIterator: Iterator[A]

Итератор, возвращающий элементы в обратном порядке.

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

Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.

Возвращает

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

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

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

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

Источник
def runWith[U](action: A => U): Int => Boolean

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

Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно

if(pf isDefinedAt x) { action(pf(x)); true } else false

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

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

функция действия

Возвращает

функция, которая отображает аргументы x в isDefinedAt(x). Результирующая функция выполняет action(this(x)) там, где this определена.

См. также

applyOrElse.

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

Источник
override def sameElements[B >: A](that: IterableOnce[B]): Boolean

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Пример:

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

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

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

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

z

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

Возвращает

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

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

Источник
def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

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

Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.

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

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

from

индекс, с которого начинается поиск.

ord

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

to

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Примечание

если to <= from, пространство поиска пусто, и возвращается InsertionPoint в from

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

Источник
def search[B >: A](elem: B)(implicit ord: Ordering[B]): SearchResult

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

Последовательность должна быть отсортирована с использованием того же Ordering перед вызовом; в противном случае результаты не определены.

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

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

ord

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

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

Источник
override def segmentLength(p: A => Boolean, from: Int): Int

Классы-родители LinearSeqOps -> SeqOps
Унаследовано от LinearSeqOps

Источник
final def segmentLength(p: A => Boolean): Int

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Источник@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): Stream[A]

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

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

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

Группирует элементы в блоки фиксированного размера, перемещая "скользящее окно" по ним (в отличие от разделения их, как в 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 sortBy[B](f: A => B)(implicit ord: Ordering[B]): Stream[A]

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

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

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

Сортировка устойчива. То есть элементы, которые равны (как определено ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

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

целевой тип преобразования f, и тип, где определено упорядочение ord.

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

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

ord

упорядочение, предполагаемое в области B.

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

последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с упорядочением, где x < y если ord.lt(f(x), f(y)).

См. также

scala.math.Ordering

Пример
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
Унаследовано от SeqOps

Исходный код
def sortWith(lt: (A, A) => Boolean): Stream[A]

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

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

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

Сортировка устойчива. То есть элементы, которые равны (как определено lt). появляются в отсортированной последовательности в том же порядке, что и в исходной.

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

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

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

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

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследовано от SeqOps

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

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

Сортировка устойчива. То есть элементы, которые равны (как определено ord.compare). появляются в отсортированной последовательности в том же порядке, что и в исходной.

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

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

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

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

См. также

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

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

Исходный код
def span(p: A => Boolean): (Stream[A], Stream[A])

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

Исходный код
override def splitAt(n: Int): (Stream[A], Stream[A])

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

Исходный код
def startsWith[B >: A](that: IterableOnce[B], offset: Int): Boolean

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

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

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

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

that

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

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

true если последовательность that содержится в этой последовательности в индексе offset, иначе false.

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

Исходный код
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, 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

Исходный код
def sum[B >: A](implicit num: Numeric[B]): B

Вычисляет сумму элементов этой коллекции.

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

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

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

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

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

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

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

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

Исходный код
override def tails: Iterator[Stream[A]]

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

Исходный код
def takeRight(n: Int): Stream[A]

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник
final override def toSeq: Stream[A]

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

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

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

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

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

Источник
def transpose[B](implicit asIterable: A => Iterable[B]): Stream[Stream[B]]

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

Тип результирующей коллекции будет определяться статическим типом итерируемой коллекции. Например:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

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

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

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

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

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

Возвращает

двумерная итерируемая коллекция итерируемых коллекций, в которой n-я строка соответствует n-му столбцу этой итерируемой коллекции.

Исключения
IllegalArgumentException

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

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

Источник
def unapply(a: Int): Option[A]

Попытка извлечь B из A в выражении сопоставления с образцом.

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

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

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

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

тип первого элемента троек

A2

тип второго элемента троек

A3

тип третьего элемента троек

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

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

Возвращает

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

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

Источник
def updated[B >: A](index: Int, elem: B): Stream[B]

Копия этой последовательности с заменой одного элемента.

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

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

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

заменяемый элемент

index

позиция замены

Возвращает

новая последовательность, являющаяся копией этой последовательности с элементом в позиции index заменённым на elem.

Исключения
IndexOutOfBoundsException

если index не удовлетворяет 0 <= index < length. В случае ленивой коллекции это исключение может быть выброшено позже или вообще не выброшено (если конец коллекции никогда не оценивается).

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

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

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

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

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

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

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

thatElem

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

thisElem

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

Возвращает

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

Унаследовано от 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/immutable/Stream.html

Spec-Zone.ru

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