Spec-Zone.ru › Scala 3.1

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

Исходный код

@SerialVersionUID(3L)
final class Cons[A](val head: A, tl: => Stream[A]) extends Stream[A]

Подтипы
25 типов
класс Stream[A]
интерфейс 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

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

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

Вызывает оценку всего Stream и возвращает его.

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sb

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

sep

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

start

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

Возвращает

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

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

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

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

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

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

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

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

Источник
def compose[R](k: PartialFunction[R, Int]): PartialFunction[R, A]

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

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

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

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

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

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

Возвращает

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

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

Источник@unspecialized
def compose[A](g: A => Int): A => A

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

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

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

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

функция A => T1

Возвращает

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

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

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

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

Источник
override def contains[A1 >: A](elem: A1): Boolean

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

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

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

Примечание

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

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

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

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

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

Source
def dropWhile(p: A => Boolean): Stream[A]

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

Source
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

Source
override def empty: Stream[A]

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

Source
def endsWith[B >: A](that: Iterable[B]): Boolean

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

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

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

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

Возвращает

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

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

Source
override def equals(o: Any): Boolean

Классы-предки Seq -> Equals -> Any
Наследуется от Seq

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

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

Source
override def filter(pred: A => Boolean): Stream[A]

Классы-предки Stream -> IterableOps -> IterableOnceOps
Наследуется от Stream

Source
override def filterNot(pred: A => Boolean): Stream[A]

Классы-предки Stream -> IterableOps -> IterableOnceOps
Наследуется от Stream

Source@tailrec
final override def find(p: A => Boolean): Option[A]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Источник@tailrec
final override def foldLeft[B](z: B)(op: (B, A) => B): B

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

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

Тип значения, которое накапливается.

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

Inherited from IterableOps

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

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

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

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

Возвращает

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

См. также

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

Inherited from IterableOps

Source
override def hashCode(): Int

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

Source
override def headOption: Option[A]

Классы-определения LinearSeqOps -> IterableOps
Inherited from 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, если такового не существует.

Inherited from SeqOps

Source
def indexOf[B >: A](elem: B, from: Int): Int

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

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

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

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

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

from

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

Возвращает

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

Inherited from SeqOps

Source@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, если такой подпоследовательности не существует.

Inherited from SeqOps

Source
def indexOfSlice[B >: A](that: Seq[B], from: Int): Int

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

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

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

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

that

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

Возвращает

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

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

Source
override def indexWhere(p: A => Boolean, from: Int): Int

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

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

Source
def indices: Range

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

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

Возвращает

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

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

Source
def init: Stream[A]

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

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

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

Source
def inits: Iterator[Stream[A]]

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

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

Возвращает

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

Пример

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

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

Source
def intersect[B >: A](that: Seq[B]): Stream[A]

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

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

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

Возвращает

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

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

Source
override def isDefinedAt(x: Int): Boolean

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

Source
override def isTraversableAgain: Boolean

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

Source
override def iterableFactory: SeqFactory[Stream]

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

Source
def iterator: Iterator[A]

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

Source
def knownSize: Int

Возвращает

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

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

Source
override def last: A

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

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

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

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

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

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

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

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

end

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def lastIndexOfSlice[B >: A](that: Seq[B], end: Int): Int

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

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

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

индекс окончания

that

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

Возвращает

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

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

Исходный код
override def lastIndexWhere(p: A => Boolean, end: Int): Int

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

Исходный код@deprecatedOverriding("Override lastIndexWhere(p, end) instead - lastIndexWhere(p) calls lastIndexWhere(p, Int.MaxValue)", "2.13.0")
def lastIndexWhere(p: A => Boolean): Int

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

Исходный код
def lazyAppendedAll[B >: A](suffix: => IterableOnce[B]): Stream[B]

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

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

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

Возвращает

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

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

Источник
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Cons[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)
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

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

Источник
override def lengthCompare(len: Int): Int

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

Источник@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
Наследуется от SeqOps

Источник
def lift: Int => Option[A]

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

Возвращает

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

См. также

Function.unlift

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

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

Классы-предки Stream -> IterableOps -> IterableOnceOps
Наследуется от Stream

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Источник
def maxBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

Источник
def maxByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Источник
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Источник
def minByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • "Stream(1, 2, 3, <cycle>)", бесконечная последовательность с циклом с четвёртого элемента.

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

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

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

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

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

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

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

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

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

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

Конкретные поля

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

© 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$$Cons.html

Spec-Zone.ru

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