Объект scala.collection.immutable.Stream.Empty
объект Empty extends Поток[Nothing]
- Источник
- Stream.scala
Типы-члены
класс WithFilter extends FilterMonadic[A, Repr]
Класс, поддерживающий отфильтрованные операции. Экземпляры этого класса возвращаются методом withFilter.
- Определяющие классы
- TraversableLike
тип Self = Поток[Nothing]
Тип, реализующий этот итерируемый объект
- Атрибуты
- protected[this]
- Определяющие классы
- TraversableLike
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
true, если !(this == that), иначе false.
- Definition Classes
- AnyRef → Any
final def ##(): Int
Эквивалентно hashCode за исключением упакованных числовых типов и null. Для числовых типов возвращает хеш-значение, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## будет генерировать одинаковое хеш-значение для каждого из них. Для неизменяемых объектов возвращает хеш-код, где hashCode() вызывает ##.
- returns
хеш-значение, согласованное с ==
- Definition Classes
- AnyRef → Any
def ++[B >: Nothing, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Создаёт новый поток, содержащий все элементы текущего потока, за которыми следуют все элементы перебираемого объекта.
- B
Тип элементов возвращаемого набора.
- That
Класс возвращаемого набора. По возможности, возвращаемый класс — это тот же класс, что и текущий класс набора, но это зависит от того, допустим ли тип элемента для этого класса, что означает, что найден неявный экземпляр типа `CanBuildFrom`.
- that
Перебираемый объект `scala.collection.GenTraversableOnce`, который нужно конкатенировать с текущим потоком.
- bf
Неявное значение класса `CanBuildFrom`, определяющее возвращаемый класс по текущему типу представления и новому типу элемента.
- returns
Новый набор, содержащий результат конкатенации.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
- Note
-
Достаточно тонкая причина, почему это работает. Мы знаем, что если целевой тип `scala.collection.mutable.Builder` является либо `Stream`, или одним из его супертипов, или не определен, то для неявного значения будет выбран `Stream`. Мы распознаём этот факт и оптимизируем для большей лени.
,Этот метод не заставляет поток полностью реализоваться, но следует отметить, что использование оператора ++ из другого типа набора может привести к бесконечной реализации. Например, со ссылкой на определение ++ в преамбуле, следующее никогда не вернётся: Stream.continually(1) ++ Stream(2).
def ++:[B >: Nothing, That](that: collection.Traversable[B])(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Аналогично методу ++, возвращает новый набор, содержащий элементы из левого операнда, за которыми следуют элементы из правого.
Отличается от ++ тем, что правый операнд определяет тип результирующего набора, а не левый. Мемоническая подсказка: двоеточие находится со стороны нового типа набора.
Пример:
scala> val x = List(1) x: List[Int] = List(1) scala> val y = LinkedList(2) y: scala.collection.mutable.LinkedList[Int] = LinkedList(2) scala> val z = x ++: y z: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2)
Этот перегруз существует, потому что для реализации ++= мы должны повторно использовать реализацию ++, потому что многие наборы переопределяют её с более эффективными версиями.
Поскольку у Stream нет метода ++=, мы должны реализовать его напрямую, но ++ и ++: могут использовать перегруз.
- B
Тип элемента возвращаемого набора.
- That
Класс возвращаемого набора. По возможности, возвращаемый класс — это тот же класс, что и текущий класс набора, но это зависит от того, допустим ли тип элемента для этого класса, что означает, что найден неявный экземпляр типа `CanBuildFrom`.
- that
Перебираемый объект для добавления.
- bf
Неявное значение класса `CanBuildFrom`, определяющее возвращаемый класс по текущему типу представления и новому типу элемента.
- returns
Новый набор типа `That`, который содержит все элементы этого набора, за которыми следуют все элементы `that`.
- Definition Classes
- TraversableLike
def ++:[B](that: TraversableOnce[B]): Stream[B]
Аналогично методу ++, возвращает новый набор, содержащий элементы из левого операнда, за которыми следуют элементы из правого.
Отличается от ++ тем, что правый операнд определяет тип результирующего набора, а не левый. Мемоническая подсказка: двоеточие находится со стороны нового типа набора.
Пример:
scala> val x = List(1) x: List[Int] = List(1) scala> val y = LinkedList(2) y: scala.collection.mutable.LinkedList[Int] = LinkedList(2) scala> val z = x ++: y z: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2)
- B
Тип элемента возвращаемого набора.
- that
Перебираемый объект для добавления.
- returns
Новый поток, который содержит все элементы этого потока, за которыми следуют все элементы `that`.
- Definition Classes
- TraversableLike
def +:(elem: A): Stream[A]
Копия потока с добавленным элементом в начало.
Обратите внимание, что операторы с окончанием двоеточием ассоциативны справа (см. пример). Мнемоническое правило для +: по сравнению с :+: двоеточие ставится со стороны коллекции.
Кроме того, исходный поток не изменяется, поэтому вам нужно будет захватить результат.
Пример:
scala> val x = List(1) x: List[Int] = List(1) scala> val y = 2 +: x y: List[Int] = List(2, 1) scala> println(x) List(1)
- elem
элемент, добавляемый в начало
- returns
новый поток, состоящий из
elem, за которым следуют все элементы этого потока.
- Классы-определения
- Поток → SeqLike → GenSeqLike
def /:[B](z: B)(op: (B, Nothing) ⇒ B): B
Применяет бинарный оператор к начальному значению и всем элементам этого итерируемого объекта или итератора слева направо.
Примечание: /: — это альтернативная синтаксическая конструкция для foldLeft; z /: xs эквивалентно xs foldLeft z.
Примеры:
Обратите внимание, что функция свертки, используемая для вычисления b, эквивалентна функции свертки, используемой для вычисления c.
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = (5 /: a)(_+_) b: Int = 15 scala> val c = (5 /: a)((x,y) => x + y) c: Int = 15
Примечание: для коллекций бесконечного размера операция не завершится.
Примечание: могут быть получены различные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого итерируемого объекта или итератора слева направо с начальным значениемzслева:op(...op(op(z, x_1), x_2), ..., x_n)
где
x1, ..., xn— это элементы этого итерируемого объекта или итератора.
- Классы-определения
- TraversableOnce → GenTraversableOnce
def :+(elem: A): Поток[A]
Копия этого потока с добавленным элементом в конец.
Мнемоническое правило для +: по сравнению с :+: двоеточие ставится со стороны коллекции.
Примечание: для коллекций бесконечного размера операция не завершится.
Пример:
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)
- elem
элемент, добавляемый в конец
- returns
новый поток, состоящий из всех элементов этого потока, за которыми следует
elem.
- Классы-определения
- SeqLike → GenSeqLike
def :\[B](z: B)(op: (Nothing, B) ⇒ B): B
Применяет бинарный оператор ко всем элементам этого итерируемого объекта или итератора и начальному значению справа налево.
Примечание: :\ — это альтернативная синтаксическая конструкция для foldRight; xs :\ z эквивалентно xs foldRight z.
Примечание: для коллекций бесконечного размера операция не завершится.
Примечание: могут быть получены различные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
Примеры:
Обратите внимание, что функция свертки, используемая для вычисления b, эквивалентна функции свертки, используемой для вычисления c.
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = (a :\ 5)(_+_) b: Int = 15 scala> val c = (a :\ 5)((x,y) => x + y) c: Int = 15
- B
тип результата бинарного оператора.
- z
начальное значение
- op
бинарный оператор
- returns
-
результат вставки
opмежду последовательными элементами этого итерируемого объекта или итератора справа налево с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn— это элементы этого итерируемого объекта или итератора.
- Классы-определения
- TraversableOnce → GenTraversableOnce
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Классы-определения
- AnyRef → Any
def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.StringBuilder
Записывает все определенные элементы этого итерируемого объекта в заданный буфер строк. Записываемый текст начинается со строки start и заканчивается строкой end. Внутри строки представления определенных элементов (в соответствии с методом toString()) разделяются строкой sep. Метод не будет принудительно вычислять неопределенные элементы. Оставшиеся неопределенные элементы будут представлены как "?". Циклический поток будет представлен как "..." в точке повторения цикла.
- b
Фабрика collection.mutable.StringBuilder, в которую нужно добавить строковые элементы.
- start
Префикс результирующей строки (например, "Stream(")
- sep
Разделитель между элементами результирующей строки (например, ",")
- end
Окончание результирующей строки (например, ")")
- returns
Исходный collection.mutable.StringBuilder, содержащий результирующую строку.
- Классы-определения
- Поток → TraversableOnce
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
строковый буфер, в который добавляются элементы.
- returns
строковый буфер
b, в который были добавлены элементы.
- Definition Classes
- TraversableOnce
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
разделительная строка.
- returns
строковый буфер
b, в который были добавлены элементы.
- Definition Classes
- TraversableOnce
def aggregate[B](z: ⇒ B)(seqop: (B, Nothing) ⇒ B, combop: (B, B) ⇒ B): B
Агрегирует результаты применения оператора к последующим элементам.
Это более общий вид fold и reduce. Он похож на foldLeft в том, что результат не должен быть супертипом типа элемента. Кроме того, он позволяет обрабатывать параллельные коллекции частями, а затем комбинировать промежуточные результаты.
aggregate разделяет итерируемый объект или итератор на части и обрабатывает каждую часть последовательным применением seqop, начиная с z (как foldLeft). Эти промежуточные результаты затем объединяются с помощью combop (как fold). Реализация этой операции может работать с произвольным количеством частей коллекции (даже 1), поэтому combop может быть вызвана произвольное количество раз (даже 0).
Например, рассмотрим суммирование целочисленных значений списка символов. Начальное значение суммы равно 0. Во-первых, seqop преобразует каждый входной символ в целое число и добавляет его к сумме (части). Затем combop просто суммирует промежуточные результаты частей:
List('a', 'b', 'c').aggregate(0)({ (sum, ch) => sum + ch.toInt }, { (p1, p2) => p1 + p2 })
- B
тип аккумулированных результатов
- z
начальное значение для накопленного результата части - обычно это нейтральный элемент для оператора
seqop(например,Nilдля конкатенации списков или0для суммирования) и может быть вычислен более одного раза- seqop
оператор, используемый для накопления результатов в пределах части
- combop
ассоциативный оператор, используемый для объединения результатов из разных частей
- Definition Classes
- TraversableOnce → GenTraversableOnce
def andThen[C](k: (Nothing) ⇒ C): PartialFunction[Int, C]
Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
- C
тип результата функции преобразования.
- k
функция преобразования
- returns
частичная функция с тем же доменом, что и эта частичная функция, которая отображает аргументы
xвk(this(x)).
- Definition Classes
- PartialFunction → Function1
def append[B >: Nothing](rest: ⇒ TraversableOnce[B]): Stream[B]
Поток, полученный в результате конкатенации этого потока с потоком-аргументом.
- rest
Поток, который добавляется к этому потоку
- returns
Поток, содержащий элементы этого потока и объекта traversable.
- Definition Classes
- Stream
def apply(n: Int): Nothing
Выбирает элемент по его индексу в последовательности. Примечание: выполнение apply может занять время, пропорциональное значению индекса.
- returns
элемент этой последовательности по индексу
idx, где0обозначает первый элемент.
- Definition Classes
- LinearSeqOptimized → SeqLike → GenSeqLike
- Exceptions thrown
IndexOutOfBoundsException, еслиidxне удовлетворяет0 <= idx < length.
def applyOrElse[A1 <: Int, B1 >: Nothing](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. Это может привести к лучшей производительности и более предсказуемому поведению относительно побочных эффектов.
- x
аргумент функции
- default
функция по умолчанию
- returns
результат применения этой функции или функции по умолчанию.
- Definition Classes
- PartialFunction
- Since
2.10
final def asInstanceOf[T0]: T0
Преобразует объект-приемник в тип T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] вызовет исключение ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается при компиляции, невозможно проверить, соответствуют ли содержимое списка требуемому типу.
- returns
объект-приемник.
- Definition Classes
- Any
- Exceptions thrown
ClassCastExceptionесли объект-приемник не является экземпляром стираемого типаT0.
def canEqual(that: Any): Boolean
Метод, вызываемый методами равенства, чтобы пользовательские подклассы могли отказываться от равенства другим коллекциям того же типа.
- that
Объект, с которым следует сравнить этот итерируемый набор
- returns
true, если этот итерируемый набор потенциально может быть равенthat,falseв противном случае. При тестировании учитываются только типы объектов во время выполнения, но не их элементы.
- Definition Classes
- IterableLike → Equals
def clone(): AnyRef
Создаёт копию объекта-приемника.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-приемника.
final def collect[B](pf: PartialFunction[A, B]): Stream[B]
Создаёт новую коллекцию, применяя частичную функцию ко всем элементам этого потока, для которых функция определена.
- B
тип элементов возвращаемой коллекции.
- pf
частичная функция, которая фильтрует и отображает поток.
- returns
новый поток, полученный путём применения данной частичной функции
pfк каждому элементу, для которого она определена, и сбора результатов. Порядок элементов сохраняется.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
def collectFirst[B](pf: PartialFunction[Nothing, B]): Option[B]
Находит первый элемент в итерируемом объекте или итераторе, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершаться для бесконечных коллекций.
Примечание: может возвращать разные результаты для разных запусков, если только тип базовой коллекции не упорядочен.
- pf
частичная функция
- returns
значение Option, содержащее pf, применённое к первому значению, для которого оно определено, или
Noneесли такого значения нет.
- Definition Classes
- TraversableOnce
Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)
def combinations(n: Int): Iterator[Stream[Nothing]]
Итерирует по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, с элементами, взятыми в порядке следования. Таким образом, "xy" и "yy" — обе комбинации длины 2 последовательности "xyy", но "yx" — нет. Если существует более одного способа сгенерировать ту же подпоследовательность, будет возвращён только один.
Например, "xyyy" имеет три различных способа генерации "xy" в зависимости от того, выбран ли первый, второй или третий "y". Однако, поскольку все они идентичны, будет выбран только один. Какой из трёх будет выбран — деталь реализации, которая не определена.
- returns
Итератор, который перебирает возможные комбинации длины n элементов этой последовательности.
- Definition Classes
- SeqLike
"abbbc".combinations(2) = Iterator(ab, ac, bb, bc)
def companion: GenericCompanion[Stream]
Объект-компаньон фабрики, который создаёт экземпляры класса Stream. (или его Iterable суперкласса, если класс Stream не является Seq.)
def compose[A](g: (A) ⇒ Int): (A) ⇒ Nothing
Компонует два экземпляра Function1 в новый Function1, применяя этот метод в последнюю очередь.
- A
тип, к которому может быть применён функция
g- g
функция A => T1
- возвращает
новая функция
fтакая, чтоf(x) == apply(g(x))
- Определяющие классы
- Function1
- Аннотации
- @unspecialized()
def contains[A1 >: Nothing](elem: A1): Boolean
Проверяет, содержит ли последовательность данное значение в качестве элемента.
Примечание: может не завершиться для бесконечных коллекций.
- elem
элемент для проверки.
- возвращает
trueесли в этой последовательности есть элемент, равный (как определено==)elem, в противном случаеfalse
- Определяющие классы
- LinearSeqOptimized → SeqLike
def containsSlice[B](that: GenSeq[B]): Boolean
Проверяет, содержит ли последовательность заданную последовательность в качестве фрагмента.
Примечание: может не завершиться для бесконечных коллекций.
- that
последательность для проверки
- возвращает
trueесли эта последовательность содержит фрагмент с теми же элементами, что иthat, в противном случаеfalse
- Определяющие классы
- SeqLike
def copyToArray(xs: Массив[A], start: Целое, len: Целое): Единица
Копирует элементы этого потока в массив. Заполняет заданный массив xs не более чем len элементами этого потока, начиная с позиции start. Копирование прекратится, когда будет достигнут конец текущего потока или конец целевого массива, или будут скопированы len элементов.
Примечание: не завершится для бесконечных коллекций.
- xs
массив для заполнения.
- start
начальный индекс.
- len
максимальное количество копируемых элементов.
- Определяющие классы
- IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
def copyToArray(xs: Массив[A]): Единица
Копирует элементы этого потока в массив. Заполняет заданный массив xs значениями из этого потока. Копирование прекратится, когда будет достигнут конец текущего потока или конец целевого массива.
Примечание: не завершится для бесконечных коллекций.
- xs
массив для заполнения.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def copyToArray(xs: Массив[A], start: Целое): Единица
Копирует элементы этого потока в массив. Заполняет заданный массив xs значениями из этого потока, начиная с индекса start. Копирование прекратится, когда будет достигнут конец текущего потока или конец целевого массива.
Примечание: не завершится для бесконечных коллекций.
- xs
массив для заполнения.
- start
начальный индекс.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def copyToBuffer[B >: Nothing](dest: Буфер[B]): Единица
Копирует все элементы этого обходчика или итератора в буфер.
Примечание: не завершится для бесконечных коллекций.
- dest
Буфер, в который копируются элементы.
- Определяющие классы
- TraversableOnce
final def corresponds[B](that: GenSeq[B])(p: (Nothing, B) ⇒ Boolean): Boolean
Проверяет, соответствуют ли все элементы этой последовательности соответствующим элементам другой последовательности, удовлетворяя предикату проверки.
- B
тип элементов
that- that
другая последовательность
- p
предикат проверки, который связывает элементы из обеих последовательностей
- returns
`true` , если обе последовательности имеют одинаковую длину и
p(x, y)trueдля всех соответствующих элементовxэтой последовательности иythat, в противном случае `false`.
- Definition Classes
- LinearSeqLike → SeqLike → GenSeqLike
- Annotations
- @tailrec()
def count(p: (Nothing) ⇒ Boolean): Int
Подсчитывает количество элементов в итераторе или перебираемой последовательности, которые удовлетворяют предикату.
- p
предикат для проверки элементов.
- returns
количество элементов, удовлетворяющих предикату
p.
- Definition Classes
- TraversableOnce → GenTraversableOnce
def diff(that: collection.Seq[Nothing]): Stream[Nothing]
Вычисляет разность множеств между этим потоком и другой последовательностью.
Примечание: не завершится для бесконечных коллекций.
- that
последовательность элементов, которые нужно удалить
- returns
новый поток, содержащий все элементы этого потока, за исключением некоторых вхождений элементов, которые также присутствуют в
that. Если значение элементаxвстречается n раз вthat, то первые n вхожденийxне будут частью результата, но все последующие вхождения будут.
- Definition Classes
- SeqLike → GenSeqLike
def distinct: Stream[Nothing]
Создает новый поток из этого потока, в котором удалены все дубликаты (определяемые по ==). Среди дубликатов сохраняется только первый элемент в результирующем Stream.
- returns
Новый
Stream, представляющий результат применения уникальности к исходномуStream.
- Definition Classes
- Stream → SeqLike → GenSeqLike
// Creates a Stream where every element is duplicated
def naturalsFrom(i: Int): Stream[Int] = i #:: { i #:: naturalsFrom(i + 1) }
naturalsFrom(1) take 6 mkString ", "
// produces: "1, 1, 2, 2, 3, 3"
(naturalsFrom(1) distinct) take 6 mkString ", "
// produces: "1, 2, 3, 4, 5, 6"
final def drop(n: Int): Stream[Nothing]
Выбирает все элементы, кроме первых n.
- n
количество элементов, которые необходимо удалить из этого потока.
- returns
поток, состоящий из всех элементов этого потока, кроме первых
nэлементов, или пустой поток, если в этом потоке меньшеnэлементов. Еслиnотрицательно, элементы не удаляются.
- Definition Classes
- Stream → LinearSeqOptimized → IterableLike → TraversableLike → GenTraversableLike
- Annotations
- @tailrec()
def dropRight(n: Int): Stream[Nothing]
Выбирает все элементы, кроме последних n.
Примечание: ленивая оценка; завершится для бесконечных коллекций.
- n
Количество элементов для взятия
- returns
поток, состоящий из всех элементов этого потока, кроме последних
nэлементов, или пустой поток, если в этом потоке меньшеnэлементов.
- Definition Classes
- Stream → LinearSeqOptimized → IterableLike
def dropWhile(p: (Nothing) ⇒ Boolean): Stream[Nothing]
Возвращает Stream , представляющий самую длинную суффиксную последовательность этой коллекции, первый элемент которой не удовлетворяет предикату p.
- p
предикат проверки.
- returns
Новый
Stream, представляющий результаты примененияpк исходномуStream.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
- Примечание
Этот метод реализует всю
Streamза пределами истинности предикатаp.
// Assume we have a Stream that takes the first 20 natural numbers
def naturalsLt50(i: Int): Stream[Int] = i #:: { if (i < 20) naturalsLt50(i * + 1) else Stream.Empty }
naturalsLt50(0) dropWhile { _ < 10 }
// produces: "10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20"
def endsWith[B](that: GenSeq[B]): Boolean
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не будет завершаться для бесконечных коллекций.
- that
последовательность для проверки
- returns
true, если эта последовательность имеетthatв качестве суффикса,falseв противном случае.
- Definition Classes
- SeqLike → GenSeqLike
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-приёмник (this).
Метод eq реализует отношение эквивалентности на не-нулевых экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-нулевых экземпляров
x и y типа AnyRef, несколько вызовов x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого не-нулевого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить, чтобы их поведение соответствовало равенству ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны хэшироваться к одному и тому же значению (o1.hashCode == o2.hashCode).
- returns
true, если аргумент является ссылкой на объект-приёмник;falseв противном случае.
- Definition Classes
- AnyRef
def equals(that: Any): Boolean
Метод equals для произвольных последовательностей. Сравнивает эту последовательность с другим объектом.
- that
Объект для сравнения с последовательностью
- returns
true, еслиthatявляется последовательностью, имеющей те же элементы, что и эта последовательность в том же порядке,falseв противном случае
- Definition Classes
- Stream → GenSeqLike → Equals → AnyRef → Any
def exists(p: (Nothing) ⇒ Boolean): Boolean
Проверяет, выполняется ли предикат хотя бы для одного элемента этой последовательности.
Примечание: может не завершиться для бесконечных коллекций.
- p
предикат, используемый для проверки элементов.
- returns
false, если эта последовательность пустая, иначеtrue, если данный предикатpвыполняется для некоторых элементов этой последовательности, иначеfalse
- Definition Classes
- LinearSeqOptimized → IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
def filter(p: (Nothing) ⇒ Boolean): Stream[Nothing]
Выбирает все элементы этой коллекции перебираемых объектов, которые удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- returns
новая коллекция перебираемых объектов, состоящая из всех элементов этой коллекции перебираемых объектов, которые удовлетворяют заданному предикату
p. Порядок элементов сохраняется.
- Definition Classes
- TraversableLike → GenTraversableLike
def filterNot(p: (Nothing) ⇒ Boolean): Stream[Nothing]
Выбирает все элементы этой коллекции перебираемых объектов, которые не удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- returns
новая коллекция перебираемых объектов, состоящая из всех элементов этой коллекции перебираемых объектов, которые не удовлетворяют заданному предикату
p. Порядок элементов сохраняется.
- Definition Classes
- TraversableLike → GenTraversableLike
def finalize(): Unit
Вызывается сборщиком мусора для объекта-приёмника, когда на объект больше нет ссылок.
Подробности о том, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- Note
не определено SLS как член AnyRef
def find(p: (Nothing) ⇒ Boolean): Option[Nothing]
Находит первый элемент последовательности, удовлетворяющий предикату, если таковой существует.
Примечание: может не завершиться для бесконечных коллекций.
- p
предикат, используемый для проверки элементов.
- returns
значение типа Option, содержащее первый элемент в последовательности, удовлетворяющий
p, илиNoneв противном случае.
- Definition Classes
- LinearSeqOptimized → IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
final def flatMap[B, That](f: (Nothing) ⇒ GenTraversableOnce[B])(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Применяет заданную функцию к каждому элементу этого потока, затем конкатенирует результаты. Как и в случае с этим, этой функции не нужно реализовывать весь процесс, но она продолжает сохранять его как ленивый процесс.
- B
Тип элементов возвращаемого набора That.
- That
Класс возвращаемого набора. В возможных случаях, этот класс является тем же классом, что и текущий набор, но это зависит от того, допустим ли тип элемента для этого класса, что означает, что найден неявный экземпляр типа.
- f
функция для применения к каждому элементу.
- bf
неявное значение класса, которое определяет класс результата из текущего типа представления и нового типа элемента.
- returns
новый результат, если этот поток не пустой.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike → FilterMonadic
// Let's create a Stream of Vectors, each of which contains the
// collection of Fibonacci numbers up to the current value. We
// can then 'flatMap' that Stream.
val fibVec: Stream[Vector[Int]] = Vector(0) #:: Vector(0, 1) #:: fibVec.zip(fibVec.tail).map(n => {
n._2 ++ Vector(n._1.last + n._2.last)
})
fibVec take 5 foreach println
// prints
// Vector(0)
// Vector(0, 1)
// Vector(0, 1, 1)
// Vector(0, 1, 1, 2)
// Vector(0, 1, 1, 2, 3)
// If we now want to `flatMap` across that stream by adding 10
// we can see what the series turns into:
fibVec.flatMap(_.map(_ + 10)) take 15 mkString(", ")
// produces: 10, 10, 11, 10, 11, 11, 10, 11, 11, 12, 10, 11, 11, 12, 13
Примечание: В настоящее время этот код будет вычислять столько элементов потока, сколько необходимо, пока не найдет непустой элемент для головы, который является неленивым.
def flatten[B](implicit asTraversable: (Nothing) ⇒ GenTraversableOnce[B]): Stream[B]
Вычисляет и конкатенирует все элементы внутри потока в новый сплющенный поток.
- B
Тип элементов результирующего потока.
- asTraversable
неявное преобразование, которое утверждает, что тип элемента этого потока является итератором.
- returns
Новый поток типа сплющенных элементов.
- Definition Classes
- Stream → GenericTraversableTemplate
val sov: Stream[Vector[Int]] = Vector(0) #:: Vector(0, 0) #:: sov.zip(sov.tail).map { n => n._1 ++ n._2 }
sov.flatten take 10 mkString ", "
// produces: "0, 0, 0, 0, 0, 0, 0, 0, 0, 0"
def fold[A1 >: Nothing](z: A1)(op: (A1, A1) ⇒ A1): A1
Складывает элементы этого итератора или перебираемого объекта с помощью указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Примечание: не завершается для коллекций бесконечного размера.
- A1
параметр типа для бинарного оператора, супертип результата.
- z
нейтральный элемент для операции fold; может быть добавлен к результату произвольное количество раз, и не должен изменять результат (например, пустой список для конкатенации списков, 0 для сложения или 1 для умножения).
- op
бинарный оператор, который должен быть ассоциативным.
- returns
результат применения оператора fold к элементам и начальному значению, или None, если этот итератор или перебираемый объект пустой.
- Definition Classes
- TraversableOnce → GenTraversableOnce
final def foldLeft[B](z: B)(op: (B, Nothing) ⇒ B): B
Специализация Stream для foldLeft, которая позволяет GC собирать память по ходу.
- B
Тип накапливаемого значения.
- z
Начальное значение, заданное в функцию.
- op
Операция, выполняемая над последовательными элементами.
- returns
Накопленное значение из последовательных применений операции.
- Definition Classes
- Stream → LinearSeqOptimized → TraversableOnce → GenTraversableOnce
- Annotations
- @tailrec()
def foldRight[B](z: B)(op: (Nothing, B) ⇒ B): B
Применяет бинарный оператор ко всем элементам этой последовательности и начальному значению, двигаясь справа налево.
Примечание: не завершается для коллекций бесконечного размера.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки оператора между последовательными элементами этой последовательности, слева направо с начальным значением справа:
op(x_1, op(x_2, ... op(x_n, z)...))
где элементы - элементы этой последовательности. Возвращает начальное значение, если эта последовательность пуста.
- Definition Classes
- LinearSeqOptimized → IterableLike → TraversableOnce → GenTraversableOnce
def forall(p: (Nothing) ⇒ Boolean): Boolean
Проверяет, выполняется ли предикат для всех элементов этой последовательности.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
true, если эта последовательность пуста или указанный предикатpвыполняется для всех элементов этой последовательности, в противном случаеfalse.
- Definition Classes
- LinearSeqOptimized → IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
def force: Stream[Nothing]
Принудительно выполняет оценку всего потока и возвращает его.
- returns
Полностью реализованный
Stream.
- Definition Classes
- Stream
- Note
Часто мы используем
Streamдля представления бесконечного множества или ряда. Если это верно для вашего конкретногоStream, то эта функция никогда не вернётся и, вероятно, вызовет сбой JVM с исключениемOutOfMemory. Однако эта функция не будет зависать на конечном цикле.
final def foreach[U](f: (Nothing) ⇒ U): Unit
Применяет данную функцию f к каждому элементу этой линейной последовательности (соблюдая порядок элементов).
- U
параметр типа, описывающий результат функции
f. Этот результат всегда будет игнорироваться. ОбычноUявляетсяUnit, но это не обязательно.- f
Обработка, применяемая к каждому элементу.
- Definition Classes
- Stream → LinearSeqOptimized → IterableLike → GenericTraversableTemplate → TraversableLike → GenTraversableLike → TraversableOnce → GenTraversableOnce → FilterMonadic
- Annotations
- @tailrec()
- Note
-
Переопределён здесь как final для запуска оптимизации хвостовой рекурсии, которая заменяет 'this' на 'tail' на каждой итерации. Это абсолютно необходимо для того, чтобы GC мог собирать базовый поток по мере потребления элементов.
,Эта функция заставит реализацию всего потока, если только
fне выбросит исключение.
def genericBuilder[B]: Builder[B, Stream[B]]
Общий билдер, который строит экземпляры Traversable для произвольных типов элементов.
- Definition Classes
- GenericTraversableTemplate
final def getClass(): Class[_]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def groupBy[K](f: (Nothing) ⇒ K): Map[K, Stream[Nothing]]
Разделяет эту коллекцию traversable на карту коллекций traversable в соответствии с функцией-дискриминатором.
Примечание: этот метод не переопределяется представлениями. Это означает, что при применении к представлению он всегда будет принудительно применять представление и возвращать новую коллекцию traversable.
- K
тип ключей, возвращаемых функцией-дискриминатором.
- f
функция-дискриминатор.
- returns
-
Карта от ключей до коллекций traversable, такая, что выполняется следующее инвариантное соотношение:
(xs groupBy f)(k) = xs filter (x => f(x) == k)
То есть, каждый ключ
kпривязан к коллекции traversable тех элементовxдля которыхf(x)равноk.
- Definition Classes
- TraversableLike → GenTraversableLike
def grouped(size: Int): Iterator[Stream[Nothing]]
Разделяет элементы на итерабельные коллекции фиксированного размера.
- size
количество элементов в каждой группе
- returns
Итератор, генерирующий итерабельные коллекции размера
size, за исключением последней, которая будет меньше размераsizeесли элементы не делятся на размер группы без остатка.
- Definition Classes
- IterableLike
- See also
scala.collection.Iterator, метод
grouped
def hasDefiniteSize: Boolean
Проверяет, известно ли, что этот поток имеет конечный размер. Все строгие коллекции известны как имеющие конечный размер. Для нестрогой коллекции, такой как Stream, предикат возвращает true если все элементы были вычислены. Он возвращает false если поток ещё не обработан до конца. Непустые итераторы обычно возвращают false даже если они были созданы из коллекции с известным конечным размером.
Примечание: многие методы коллекций не будут работать с коллекциями бесконечных размеров. Типичный способ отказа — бесконечный цикл. Эти методы всегда пытаются выполнить обход, не проверяя предварительно, что hasDefiniteSize возвращает true. Однако проверка hasDefiniteSize может гарантировать, что размер определён и бесконечная итерация не будет проблемой.
- returns
trueесли эта коллекция известна как имеющая конечный размер,falseв противном случае.
- Definition Classes
- Stream → TraversableLike → TraversableOnce → GenTraversableOnce
def hashCode(): Int
Хеш-коды для Seq генерируют значение из хеш-кодов всех элементов последовательности.
- returns
значение хэш-кода для этого объекта.
- Definition Classes
- LinearSeqLike → GenSeqLike → AnyRef → Any
def head: Nothing
Обеспечивает доступ к первому элементу этого Stream за постоянное время. Используя пример fibs из предыдущего раздела:
println(fibs head) // prints // 0
- returns
Первый элемент
Stream.
- Definition Classes
- Empty → Stream → LinearSeqOptimized → IterableLike → GenericTraversableTemplate → TraversableLike → GenTraversableLike
- Exceptions thrown
java.util.NoSuchElementExceptionесли поток пустой.
def headOption: Option[Nothing]
Возвращает первый элемент.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не отсортирован.
- returns
Первый элемент этой коллекции, если она не пуста,
Noneесли она пуста.
- Definition Classes
- TraversableLike → GenTraversableLike
def indexOf(elem: Nothing, from: Int): Int
Находит индекс первого вхождения значения в этом потоке после или на заданном индексе начала.
Примечание: может не завершиться для коллекций бесконечного размера.
- elem
значение элемента для поиска.
- from
индекс начала
- returns
индекс
>= fromпервого элемента этого потока, равного (как определяется==)elem, или-1, если такой элемент отсутствует.
- Definition Classes
- GenSeqLike
def indexOf(elem: Nothing): Int
Находит индекс первого вхождения значения в этом потоке.
Примечание: может не завершиться для коллекций бесконечного размера.
- elem
значение элемента для поиска.
- returns
индекс первого элемента этого потока, равного (как определяется
==)elem, или-1, если такой элемент отсутствует.
- Definition Classes
- GenSeqLike
def indexOfSlice[B >: Nothing](that: GenSeq[B], from: Int): Int
Находит первый индекс после или на заданном индексе начала, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для коллекций бесконечного размера.
- that
последовательность для проверки
- from
индекс начала
- returns
первый индекс
>= fromтакой, что элементы этой последовательности, начинающиеся с этого индекса, соответствуют элементам последовательностиthat, или-1если такой подпоследовательности не существует.
- Definition Classes
- SeqLike
def indexOfSlice[B >: Nothing](that: GenSeq[B]): Int
Находит первый индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для коллекций бесконечного размера.
- that
последовательность для проверки
- returns
первый индекс такой, что элементы этой последовательности, начинающиеся с этого индекса, соответствуют элементам последовательности
that, или-1если такой подпоследовательности не существует.
- Definition Classes
- SeqLike
def indexWhere(p: (Nothing) ⇒ Boolean, from: Int): Int
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на некотором начальном индексе.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- from
начальный индекс
- returns
индекс
>= fromпервого элемента этой последовательности, удовлетворяющего предикатуp, или-1, если такового нет.
- Definition Classes
- LinearSeqOptimized → SeqLike → GenSeqLike
def indexWhere(p: (Nothing) ⇒ Boolean): Int
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
индекс первого элемента этой общей последовательности, удовлетворяющего предикату
p, или-1, если такового нет.
- Definition Classes
- GenSeqLike
def indices: Range
Создаёт диапазон всех индексов этой последовательности.
- returns
значение
Rangeот0до значения, на единицу меньшего, чем длина этой последовательности.
- Definition Classes
- SeqLike
def init: Stream[Nothing]
Поток без его последнего элемента.
- returns
Новый
Stream, содержащий всё, кроме последнего элемента. Если вашStreamпредставляет бесконечный ряд, этот метод не вернёт значение.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
- Exceptions thrown
UnsupportedOperationException, если поток пустой.
def inits: Iterator[Stream[Nothing]]
Итерируется по начальным частям этого итерируемого набора коллекций. Первое значение будет этим итерируемым набором коллекций, а последнее — пустым итерируемым набором коллекций, а промежуточные значения — результаты последовательных применений init.
- returns
итератор по всем начальным частям этого итерируемого набора коллекций
- Definition Classes
- TraversableLike
List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)
def intersect(that: collection.Seq[Nothing]): Stream[Nothing]
Вычисляет пересечение мультимножеств между этим потоком и другой последовательностью.
Примечание: может не завершиться для коллекций бесконечного размера.
- that
последовательность элементов для пересечения.
- returns
новый поток, содержащий все элементы этого потока, которые также встречаются в
that. Если значение элементаxвстречается n раз вthat, то первые n появленийxбудут сохранены в результате, но любые последующие появлення будут опущены.
- Definition Classes
- SeqLike → GenSeqLike
def isDefinedAt(x: Int): Boolean
Проверяет, содержит ли эта последовательность заданный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
- returns
true, если эта последовательность содержит элемент в позицииidx,falseв противном случае.
- Definition Classes
- LinearSeqOptimized → GenSeqLike
def isEmpty: Boolean
Указывает, пуста ли Stream.
- returns
true, еслиStreamпуста, иfalseв противном случае.
- Definition Classes
- Empty → Stream → LinearSeqOptimized → SeqLike → IterableLike → GenericTraversableTemplate → TraversableLike → TraversableOnce → GenTraversableOnce
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки модулируется семантикой стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, проверить, содержат ли элементы списка указанный тип, невозможно.
- returns
true, если объект-получатель является экземпляром стираемого типаT0;falseв противном случае.
- Definition Classes
- Any
final def isTraversableAgain: Boolean
Проверяет, может ли эта коллекция с итерацией быть многократно пройдена.
- returns
true
- Definition Classes
- TraversableLike → GenTraversableLike → GenTraversableOnce
def iterator: Iterator[Nothing]
Более ленивый итератор, чем у LinearSeqLike.
- returns
новый итератор
- Definition Classes
- Stream → LinearSeqLike → IterableLike → GenIterableLike
def last: Nothing
Выбирает последний элемент.
- returns
Последний элемент этой последовательности.
- Definition Classes
- LinearSeqOptimized → TraversableLike → GenTraversableLike
- Exceptions thrown
NoSuchElementExceptionЕсли последовательность пуста.
def lastIndexOf(elem: Nothing, end: Int): Int
Находит индекс последнего вхождения некоторого значения в этот поток до или на заданном индексе.
- elem
значение элемента для поиска.
- end
индекс конца.
- returns
индекс последнего элемента этого потока, равного (как определено
==)elem, или-1, если он не существует.
- Definition Classes
- GenSeqLike
def lastIndexOf(elem: Nothing): Int
Находит индекс последнего вхождения некоторого значения в этот поток.
Примечание: не будет завершаться для коллекций бесконечного размера.
- elem
значение элемента для поиска.
- returns
индекс последнего элемента этого потока, равного (как определено
==)elem, или-1, если он не существует.
- Definition Classes
- GenSeqLike
def lastIndexOfSlice[B >: Nothing](that: GenSeq[B], end: Int): Int
Находит последний индекс перед или на заданном индексе, где эта последовательность содержит заданную последовательность как срез.
- that
последовательность для проверки
- end
индекс конца
- returns
последний индекс, такой что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности
that, или-1, если такая подпоследовательность не существует.
- Definition Classes
- SeqLike
def lastIndexOfSlice[B >: Nothing](that: GenSeq[B]): Int
Находит последний индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: не будет завершаться для коллекций бесконечного размера.
- that
последовательность для проверки
- returns
последний индекс, такой что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности
that, или-1, если такая подпоследовательность не существует.
- Definition Classes
- SeqLike
def lastIndexWhere(p: (Nothing) ⇒ Boolean, end: Int): Int
Находит индекс последнего элемента, удовлетворяющего некоторому предикату до или на заданном индексе.
- p
предикат, используемый для проверки элементов.
- returns
индекс последнего элемента этой последовательности, удовлетворяющего предикату
p, или-1, если такового нет.
- Definition Classes
- LinearSeqOptimized → SeqLike → GenSeqLike
def lastIndexWhere(p: (Nothing) ⇒ Boolean): Int
Находит индекс последнего элемента, удовлетворяющего некоторому предикату.
Примечание: не будет завершаться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
индекс последнего элемента этой общей последовательности, удовлетворяющего предикату
p, или-1, если такового нет.
- Definition Classes
- GenSeqLike
def lastOption: Option[Nothing]
Возвращает опцию последнего элемента.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
последний элемент этой коллекции с итерацией, если она не пуста,
Noneесли она пуста.
- Definition Classes
- TraversableLike → GenTraversableLike
def length: Int
Возвращает длину этого Stream.
- returns
Длина этого
Stream.
- Definition Classes
- Stream → LinearSeqOptimized → SeqLike → GenSeqLike
- Note
Для вычисления длины
Stream, она должна быть сначала полностью реализована, что может привести к полному вычислению бесконечного ряда, если это то, что представляет вашStream.
def lengthCompare(len: Int): Int
Сравнивает длину этой последовательности со значением теста.
- len
тестовое значение, которое сравнивается с длиной.
- returns
-
Значение
x, гдеx < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len
Реализация данного метода не вызывает
lengthнапрямую; ее время выполнения составляетO(length min len)вместоO(length). Метод следует переопределять, если вычислениеlengthявляется быстрым.
- Definition Classes
- LinearSeqOptimized → SeqLike
def lift: (Int) ⇒ Option[Nothing]
Преобразует эту частичную функцию в обычную функцию, возвращающую Option результат.
- returns
Функция, которая принимает аргумент
xкSome(this(x))еслиthisопределена дляx, и кNoneв противном случае.
- Definition Classes
- PartialFunction
- See also
Function.unlift
final def map[B, That](f: (Nothing) ⇒ B)(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Возвращает поток, полученный путем применения заданной функции f к каждому элементу этого потока. Это возвращает ленивый Stream такой, что он не нуждается в полной реализации.
- B
Тип элемента возвращаемого набора That.
- That
класс возвращаемого набора. По возможности,
Thatтакой же класс, как и текущий класс коллекцииRepr, но это зависит от того, является ли тип элементаBдопустимым для этого класса, что означает, что найден неявный экземпляр типаCanBuildFrom[Repr, B, That].- f
функция, применяемая к каждому элементу.
- bf
неявное значение класса
CanBuildFrom, которое определяет класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- returns
f(a0), ..., f(an)если эта последовательностьa0, ..., an.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike → FilterMonadic
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1)
naturalsFrom(1).map(_ + 10) take 5 mkString(", ")
// produces: "11, 12, 13, 14, 15"
def max: A
Находит наибольший элемент.
- returns
наибольший элемент этого потока.
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationExceptionесли этот поток пуст.
def maxBy[B](f: (A) ⇒ B): A
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- returns
первый элемент этого потока с наибольшим значением, измеренным функцией f.
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationExceptionесли этот поток пуст.
def min: A
Находит наименьший элемент.
- returns
наименьший элемент этого потока
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationExceptionесли этот поток пуст.
def minBy[B](f: (A) ⇒ B): A
Находит первый элемент, который дает наименьшее значение, измеряемое функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- возвращает
первый элемент этого потока с наименьшим значением, измеренным функцией f.
- Классы определений
- TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationException, если этот поток пуст.
def mkString(start: String, sep: String, end: String): String
Отображает все элементы этого потока в строке, используя строки start, end и разделитель.
- start
строка начала.
- sep
строка-разделитель.
- end
строка окончания.
- возвращает
представление этого потока в виде строки. Результирующая строка начинается со строки
startи заканчивается строкойend. Внутри строковые представления (с точки зрения методаtoString) всех элементов этого потока разделены строкойsep.
- Классы определений
- Stream → TraversableOnce → GenTraversableOnce
List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
def mkString: String
Отображает все элементы этого потока в строку.
- возвращает
представление этого потока в виде строки. В результирующей строке строковые представления (с точки зрения метода
toString) всех элементов этого потока следуют друг за другом без разделительной строки.
- Классы определений
- Stream → TraversableOnce → GenTraversableOnce
def mkString(sep: String): String
Отображает все элементы этого потока в строке, используя строку-разделитель.
- sep
строка-разделитель.
- возвращает
представление этого потока в виде строки. В результирующей строке строковые представления (с точки зрения метода
toString) всех элементов этого потока разделены строкойsep.
- Классы определений
- Stream → TraversableOnce → GenTraversableOnce
List(1, 2, 3).mkString("|") = "1|2|3"
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
true, если аргумент не является ссылкой на объект-приемник;falseв противном случае.
- Классы определений
- AnyRef
def newBuilder: Builder[Nothing, Stream[Nothing]]
Библиотека для построения экземпляров типа Traversable[A]
- Атрибуты
- protected[this]
- Классы определений
- GenericTraversableTemplate → HasNewBuilder
def nonEmpty: Boolean
Проверяет, не пуст ли итерируемый объект или итератор.
- возвращает
true, если в итерируемом объекте или итераторе есть хотя бы один элемент; false в противном случае.
- Классы определений
- TraversableOnce → GenTraversableOnce
final def notify(): Unit
Разбуживает один поток, ожидающий монитора объекта-приемника.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как члена AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитора объекта-приемника.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как члена AnyRef
def orElse[A1 <: Int, B1 >: Nothing](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]
Комбинирует эту частичную функцию со вспомогательной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.
- A1
тип аргумента вспомогательной функции
- B1
тип результата вспомогательной функции
- that
вспомогательная функция
- возвращает
частичная функция, область определения которой является объединением областей определения этой частичной функции и `that`. Результирующая частичная функция принимает аргумент `x` к `this`, где `this` определена, и к `that` в противном случае.
- Классы определений
- PartialFunction
def padTo[B >: Nothing, That](len: Int, elem: B)(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Возвращает новую последовательность заданной длины, содержащую элементы этой последовательности, за которыми следуют ноль или более вхождений заданных элементов.
- B
Тип значения, используемого для дополнения.
- That
Тип, содержащийся в результирующей последовательности.
- len
Количество элементов для дополнения в последовательности.
- elem
Значение типа B для использования при дополнении.
- bf
явное значение класса CanBuildFrom, которое определяет класс результата по типу текущей структуры и новому типу элементов.
- returns
Новая последовательность, представляющая коллекцию со значениями дополнения до конца. Если ваша последовательность представляет бесконечную последовательность, этот метод не вернет результат.
- Definition Classes
- Stream → SeqLike → GenSeqLike
def naturalsFrom(i: Int): Stream[Int] = i #:: { if (i < 5) naturalsFrom(i + 1) else Stream.Empty }
naturalsFrom(1) padTo(10, 0) foreach println
// prints
// 1
// 2
// 3
// 4
// 5
// 0
// 0
// 0
// 0
// 0
def par: ParSeq[Nothing]
Возвращает параллельную реализацию этой коллекции.
Для большинства типов коллекций этот метод создает новую параллельную коллекцию, копируя все элементы. Для таких коллекций это занимает линейное время. Изменяемые коллекции в этой категории не производят изменяемую параллельную коллекцию, которая имеет тот же базовый набор данных, поэтому изменения в одной коллекции не будут отражены в другой.
Конкретные коллекции (например, неизменяемые последовательности или списки) переопределяют это поведение по умолчанию, создавая параллельную коллекцию, которая использует тот же базовый набор данных. Для этих коллекций это занимает постоянное или подлинейное время.
Все параллельные коллекции возвращают ссылку на себя.
- returns
параллельную реализацию этой коллекции
- Definition Classes
- Parallelizable
def parCombiner: Combiner[Nothing, ParSeq[Nothing]]
Реализация по умолчанию использует комбинатор, предоставленный этим методом, для создания новой параллельной коллекции.
- returns
комбинатор для параллельной коллекции типа ParSeq.
- Attributes
- protected[this]
- Definition Classes
- Seq → SeqLike → Iterable → TraversableLike → Parallelizable
def partition(p: (Nothing) ⇒ Boolean): (Stream[Nothing], Stream[Nothing])
Возвращает все элементы этой последовательности, удовлетворяющие предикату, возвращая пару потоков, содержащих элементы, удовлетворяющие и не удовлетворяющие предикату. Порядок элементов сохраняется.
- p
предикат, используемый для фильтрации последовательности.
- returns
элементы этой последовательности, удовлетворяющие предикату.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1)
val parts = naturalsFrom(1) partition { _ % 2 == 0 }
parts._1 take 10 mkString ", "
// produces: "2, 4, 6, 8, 10, 12, 14, 16, 18, 20"
parts._2 take 10 mkString ", "
// produces: "1, 3, 5, 7, 9, 11, 13, 15, 17, 19"
def patch(from: Int, that: GenSeq[A], replaced: Int): Stream[A]
Создает новую последовательность, где фрагмент элементов в этой последовательности заменяется другой последовательностью.
- from
индекс первого заменяемого элемента
- replaced
количество элементов для удаления в исходной последовательности
- returns
новая последовательность, состоящая из всех элементов этой последовательности, за исключением того, что элементы, начиная с from, заменяются на that.
- Definition Classes
- SeqLike → GenSeqLike
def permutations: Iterator[Stream[Nothing]]
Перебирает различные перестановки.
- returns
Итератор, который проходит по различным перестановкам этой последовательности.
- Definition Classes
- SeqLike
"abb".permutations = Iterator(abb, bab, bba)
def prefixLength(p: (Nothing) ⇒ Boolean): Int
Возвращает длину наибольшего префикса, элементы которого удовлетворяют предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат для проверки элементов.
- returns
длина наибольшего префикса этой последовательности, такой что каждый элемент сегмента удовлетворяет предикату.
- Definition Classes
- GenSeqLike
Печатает элементы этого потока по одному, разделенные запятыми.
- sep
Строка-разделитель, печатаемая между последовательными элементами.
- Определяющие классы
- Stream
def print(): Unit
Печатает элементы этого потока по одному, разделенные запятыми.
- Определяющие классы
- Stream
def product: A
Перемножает элементы этой коллекции.
- возвращает
произведение всех элементов в этом потоке чисел типа
Int. ВместоInt, может быть использован любой другой типTс неявнойNumeric[T]реализацией, который может быть использован как тип элементов потока и как тип возвращаемого значенияproduct. Примеры таких типов:Long,Float,Double,BigInt.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def reduce[A1 >: Nothing](op: (A1, A1) ⇒ A1): A1
Применяет заданный ассоциативный бинарный оператор к элементам этой коллекции или итератора.
Порядок выполнения операций над элементами не определен и может быть непредсказуемым.
- A1
Параметр типа для бинарного оператора, надтипом
A.- op
Бинарный оператор, который должен быть ассоциативным.
- возвращает
Результат применения оператора reduce
opмежду всеми элементами, если коллекция или итератор не пустые.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationExceptionесли эта коллекция или итератор пустые.
final def reduceLeft[B >: Nothing](f: (B, Nothing) ⇒ B): B
Специализация reduceLeft для потоков, которая позволяет сборщику мусора собирать во время выполнения.
- B
Тип накапливаемого значения.
- f
Операция для выполнения над последовательными элементами
Stream.- возвращает
Накопленное значение из последовательных применений
f.
- Определяющие классы
- Stream → LinearSeqOptimized → TraversableOnce
def reduceLeftOption[B >: Nothing](op: (B, Nothing) ⇒ B): Option[B]
Применяет бинарный оператор ко всем элементам этой коллекции или итератора слева направо.
Примечание: не завершается для бесконечных коллекций.
Примечание: может возвращать различные результаты для разных запусков, если тип коллекции не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- возвращает
опционное значение, содержащее результат
reduceLeft(op), если эта коллекция или итератор не пустые,Noneв противном случае.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def reduceOption[A1 >: Nothing](op: (A1, A1) ⇒ A1): Option[A1]
Применяет заданный ассоциативный бинарный оператор к элементам этой коллекции или итератора, если таковые имеются.
Порядок выполнения операций над элементами не определен и может быть непредсказуемым.
- A1
Параметр типа для бинарного оператора, надтипом
A.- op
Бинарный оператор, который должен быть ассоциативным.
- возвращает
Опционное значение, содержащее результат применения оператора reduce
opмежду всеми элементами, если коллекция не пустая, иNoneв противном случае.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def reduceRight[B >: Nothing](op: (Nothing, B) ⇒ B): B
Применяет бинарный оператор ко всем элементам этого последовательности, справа налево.
Примечание: не завершается для коллекций бесконечного размера.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этой последовательности, справа налево:op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))где
x1, ..., xn— это элементы этой последовательности.
- Definition Classes
- LinearSeqOptimized → IterableLike → TraversableOnce → GenTraversableOnce
- Исключения
UnsupportedOperationException, если эта последовательность пуста.
def reduceRightOption[B >: Nothing](op: (Nothing, B) ⇒ B): Option[B]
Необязательно применяет бинарный оператор ко всем элементам этого итератора или обобщённой коллекции, справа налево.
Примечание: не завершается для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип основной коллекции не упорядочен, или оператор не ассоциативен и не коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
значение типа Option, содержащее результат
reduceRight(op)если этот итератор или обобщённая коллекция непуста,Noneв противном случае.
- Definition Classes
- TraversableOnce → GenTraversableOnce
def repr: Stream[Nothing]
Коллекция типа обобщённой коллекции, лежащая в основе этого TraversableLike объекта. По умолчанию это сам объект TraversableLike, но это можно переопределить.
- Definition Classes
- TraversableLike → GenTraversableLike
def reverse: Stream[Nothing]
Список, содержащий все элементы этого списка в обратном порядке.
- returns
Новый
Stream, содержащий представление исходногоStreamв обратном порядке.
- Definition Classes
- Stream → SeqLike → GenSeqLike
- Примечание
Эта функция должна реализовать всю
Streamдля выполнения этой операции, поэтому если вашStreamпредставляет собой бесконечную последовательность, эта функция никогда не вернётся.
def naturalsFrom(i: Int): Stream[Int] = i #:: { if (i < 5) naturalsFrom(i + 1) else Stream.Empty }
(naturalsFrom(1) reverse) foreach println
// prints
// 5
// 4
// 3
// 2
// 1
def reverseIterator: Iterator[Nothing]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не завершается для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
- returns
итератор, возвращающий элементы этой последовательности в обратном порядке
- Definition Classes
- SeqLike
def reverseMap[B](f: (A) ⇒ B): Stream[B]
Строит новую коллекцию, применяя функцию ко всем элементам этого потока и собирая результаты в обратном порядке.
Примечание: не завершается для коллекций бесконечного размера.
Примечание: xs.reverseMap(f) эквивалентно xs.reverse.map(f), но может быть более эффективным.
- B
тип элементов возвращаемой коллекции.
- f
функция, применяемая к каждому элементу.
- returns
новый поток, полученный путём применения заданной функции
fк каждому элементу этого потока и сбора результатов в обратном порядке.
- Definition Classes
- SeqLike → GenSeqLike
def reversed: scala.List[Nothing]
- Атрибуты
- protected[this]
- Definition Classes
- TraversableOnce
def runWith[U](action: (Nothing) ⇒ U): (Int) ⇒ Boolean
Комбинирует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
за исключением того, что runWith реализована с помощью applyOrElse и, следовательно, потенциально более эффективна. Использование runWith избегает двойного вычисления соответствий шаблонов и условий для литералов частичных функций.
- action
функция действия
- returns
функция, которая отображает аргументы
xвisDefinedAt(x). Результирующая функция выполняетaction(this(x))там, гдеthisопределена.
- Definition Classes
- PartialFunction
- Since
2.10
- См. также
applyOrElse.
def sameElements(that: GenIterable[A]): Boolean
Проверяет, содержит ли другая итерируемая коллекция те же элементы в том же порядке, что и этот поток.
Примечание: не завершится для коллекций бесконечного размера.
- that
коллекция для сравнения.
- returns
true, если обе коллекции содержат одни и те же элементы в том же порядке,falseв противном случае.
- Definition Classes
- LinearSeqOptimized → IterableLike → GenIterableLike
def scan[B >: Nothing, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[Stream[Nothing], B, That]): That
Вычисляет префиксный сканирование элементов коллекции.
Примечание: нейтральный элемент z может применяться более одного раза.
- B
тип элементов результирующей коллекции
- That
тип результирующей коллекции
- z
нейтральный элемент для оператора
op- op
ассоциативный оператор для сканирования
- cbf
фабрика комбинирования, которая предоставляет комбинирование
- returns
новая коллекция Traversable, содержащая префиксное сканирование элементов в этой коллекции Traversable
- Definition Classes
- TraversableLike → GenTraversableLike
final def scanLeft[B, That](z: B)(op: (B, Nothing) ⇒ B)(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Создаёт новый поток, содержащий все промежуточные результаты применения оператора слева направо. scanLeft аналогичен foldLeft.
- B
тип элементов в результирующей коллекции
- That
фактический тип результирующей коллекции
- z
начальное значение для сканирования.
- op
функция, которая будет применять операции к последовательным значениям в
Streamпо отношению к предыдущим накопленным результатам.- bf
явное значение класса
CanBuildFrom, который определяет класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- returns
Новая коллекция, содержащая изменения от применения
op.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
- Note
Это работает, потому что целевой тип scala.collection.mutable.Builder
ThatявляетсяStream.
def scanRight[B, That](z: B)(op: (Nothing, B) ⇒ B)(implicit bf: CanBuildFrom[Stream[Nothing], B, That]): That
Создаёт коллекцию, содержащую кумулятивные результаты применения оператора справа налево. Голова коллекции — это последний кумулятивный результат.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
- B
тип элементов в результирующей коллекции
- That
фактический тип результирующей коллекции
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- bf
явное значение класса
CanBuildFrom, который определяет класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- returns
коллекция с промежуточными результатами
- Definition Classes
- TraversableLike → GenTraversableLike
- Annotations
- @migration
- Migration
(Изменено в версии 2.9.0) Поведение
scanRightизменилось. Предыдущее поведение можно воспроизвести с помощью scanRight.reverse.
def segmentLength(p: (Nothing) ⇒ Boolean, from: Int): Int
Вычисляет длину самой длинной последовательности, элементы которой удовлетворяют определённому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- from
индекс, с которого начинается поиск.
- returns
длина самой длинной последовательности из этой последовательности, начинающейся с индекса
from, такая, что каждый элемент последовательности удовлетворяет предикатуp.
- Definition Classes
- LinearSeqOptimized → SeqLike → GenSeqLike
def seq: LinearSeq[Nothing]
Версия этой коллекции со всеми операциями, реализованными последовательно (т.е., в однопоточном режиме).
Этот метод возвращает ссылку на эту коллекцию. В параллельных коллекциях он переопределен для возврата последовательной реализации этой коллекции. В обоих случаях он имеет сложность O(1).
- returns
последовательное представление коллекции.
- Определяющие классы
- LinearSeq → LinearSeq → LinearSeqLike → Seq → Seq → GenSeq → GenSeqLike → Iterable → Iterable → GenIterable → Traversable → Traversable → GenTraversable → Parallelizable → TraversableOnce → GenTraversableOnce
def size: Int
Размер этой последовательности, эквивалентный length.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
количество элементов в этой последовательности.
- Определяющие классы
- SeqLike → GenTraversableLike → TraversableOnce → GenTraversableOnce
def sizeHintIfCheap: Int
Размер этой коллекции или итератора, если его можно вычислить недорого
- returns
количество элементов в этой коллекции или итераторе, или -1, если размер не может быть определен дешево
- Атрибуты
- protected[collection]
- Определяющие классы
- GenTraversableOnce
def slice(from: Int, until: Int): Stream[Nothing]
Подпоток, начинающийся с индекса from и простирающийся до (но не включая) индекса until. Это возвращает Stream, который вычисляется лениво.
- from
Индекс первого элемента возвращаемой подпоследовательности
- until
Индекс элемента, следующего за возвращаемой подпоследовательностью
- returns
Новая строка, содержащая запрошенные элементы от
startдоend.
- Определяющие классы
- Stream → LinearSeqOptimized → IterableLike → TraversableLike → GenTraversableLike
naturalsFrom(0) slice(50, 60) mkString ", " // produces: "50, 51, 52, 53, 54, 55, 56, 57, 58, 59"
def sliding(size: Int, step: Int): Iterator[Stream[Nothing]]
Группирует элементы в блоки фиксированного размера, пропуская над ними "скользящее окно" (в отличие от разбиения, как это делается в grouped).
- size
количество элементов в группе
- step
расстояние между первыми элементами последовательных групп
- returns
Итератор, создающий итерируемые коллекции размером
size, за исключением последнего элемента (который может быть единственным элементом), который будет усечен, если осталось меньшеsizeэлементов для группировки.
- Определяющие классы
- IterableLike
- См. также
scala.collection.Iterator, метод
sliding
def sliding(size: Int): Iterator[Stream[Nothing]]
Группирует элементы в блоки фиксированного размера, пропуская над ними "скользящее окно" (в отличие от разбиения, как это делается в grouped.) Шаг "скользящего окна" установлен в один.
- size
количество элементов в группе
- returns
Итератор, создающий итерируемые коллекции размером
size, за исключением последнего элемента (который может быть единственным элементом), который будет усечен, если осталось меньшеsizeэлементов для группировки.
- Определяющие классы
- IterableLike
- См. также
scala.collection.Iterator, метод
sliding
def sortBy[B](f: (Nothing) ⇒ B)(implicit ord: math.Ordering[B]): Stream[Nothing]
Сортирует этот Seq в соответствии с Ordering, который получается в результате преобразования неявно заданного Ordering с помощью функции преобразования.
- B
целевой тип функции преобразования
f, и тип, где определен порядокord.- f
функция преобразования, отображающая элементы в некоторую другую область
B.- ord
порядок, предполагаемый в области
B.- returns
последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с порядком, где
x < yеслиord.lt(f(x), f(y)).
- Определяющие классы
- SeqLike
- См. также
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)
def sortWith(lt: (Nothing, Nothing) ⇒ Boolean): Stream[Nothing]
Сортирует эту последовательность в соответствии с функцией сравнения.
Примечание: не завершится для коллекций бесконечного размера.
Сортировка стабильна. То есть элементы, которые равны (как определено lt), появляются в отсортированной последовательности в том же порядке, что и в исходной.
- lt
функция сравнения, которая проверяет, предшествует ли ее первый аргумент второму аргументу в желаемой последовательности.
- returns
последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с функцией сравнения
lt.
- Definition Classes
- SeqLike
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
def sorted[B >: Nothing](implicit ord: math.Ordering[B]): Stream[Nothing]
Сортирует эту последовательность в соответствии с Ordering.
Сортировка стабильна. То есть элементы, которые равны (как определено lt), появляются в отсортированной последовательности в том же порядке, что и в исходной.
- ord
упорядочение, используемое для сравнения элементов.
- returns
последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с упорядочением
ord.
- Definition Classes
- SeqLike
- См. также
def span(p: (Nothing) ⇒ Boolean): (Stream[Nothing], Stream[Nothing])
Разделяет эту последовательность на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
- returns
пара, состоящая из самого длинного префикса этой последовательности, элементы которой удовлетворяют
p, и остальной части этой последовательности.
- Definition Classes
- LinearSeqOptimized → TraversableLike → GenTraversableLike
def splitAt(n: Int): (Stream[Nothing], Stream[Nothing])
Разделяет этот поток на две части в заданной позиции. Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
- n
позиция разделения.
- returns
пара потоков, состоящая из первых
nэлементов этого потока и других элементов.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
def startsWith[B](that: GenSeq[B], offset: Int): Boolean
Проверяет, содержит ли эта последовательность данную последовательность в заданном индексе.
Примечание: Если как принимающий объект this, так и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.
- that
последовательность для проверки
- offset
индекс, в котором ищется последовательность.
- returns
true, если последовательностьthatсодержится в этой последовательности по индексуoffset, в противном случаеfalse.
- Definition Classes
- SeqLike → GenSeqLike
def startsWith[B](that: GenSeq[B]): Boolean
Проверяет, начинается ли эта общая последовательность с данной последовательности.
- that
последовательность для проверки
- returns
true, если у этой коллекцииthatв качестве префикса,falseв противном случае.
- Definition Classes
- GenSeqLike
def stringPrefix: String
Определяет префикс представления этого объекта как toString.
- returns
строковое представление, которое начинает результат
toString, примененный к этому потоку. По умолчанию префикс строки - это простое имя класса коллекции stream.
- Definition Classes
- Stream → TraversableLike → GenTraversableLike
def sum: A
Суммирует элементы этой коллекции.
- returns
сумма всех элементов в этом потоке чисел типа
Int. ВместоInt, любой другой типTс неявнойNumeric[T]реализацией может использоваться в качестве типа элемента потока и как тип результатаsum. Примеры таких типов:Long,Float,Double,BigInt.
- Definition Classes
- TraversableOnce → GenTraversableOnce
final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
def tail: Nothing
Поток, состоящий из оставшихся элементов этого потока после первого.
Обратите внимание, что этот метод не принуждает к вычислению Stream, а просто возвращает ленивый результат.
- returns
Хвост
Stream.
- Definition Classes
- Empty → Stream → LinearSeqOptimized → TraversableLike → GenTraversableLike
- Исключения
UnsupportedOperationException, если поток пуст.
def tailDefined: Boolean
def tails: Iterator[Stream[Nothing]]
Итерация по хвостам этой последовательности. Первое значение будет этой последовательностью, а последнее — пустой последовательностью, а промежуточные значения — результатами последовательных применений tail.
- returns
итератор по всем хвостам этой последовательности
- Definition Classes
- LinearSeqOptimized → TraversableLike
List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)
def take(n: Int): Stream[Nothing]
Возвращает первые n элементов этого потока в качестве другого потока, или же весь поток, если в нём меньше n элементов.
Результат take также является ленивым, что означает, что он не выполняет ненужных вычислений потока, откладывая их до использования полученного Stream.
- n
количество элементов для взятия.
- returns
первых n элементов этого потока.
- Definition Classes
- Stream → LinearSeqOptimized → IterableLike → TraversableLike → GenTraversableLike
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1) scala> naturalsFrom(5) take 5 res1: scala.collection.immutable.Stream[Int] = Stream(5, ?) scala> naturalsFrom(5) take 5 mkString ", " // produces: "5, 6, 7, 8, 9"
def takeRight(n: Int): Stream[Nothing]
Возвращает правые n элементов из этого итерируемого объекта.
- n
количество элементов для взятия
- returns
Последние n элементов из этого потока.
- Definition Classes
- Stream → IterableLike
- Примечание
Будьте внимательны. Если
Streamпредставляет бесконечный ряд, эта функция не вернётся. Для взятия правых элементов бесконечного ряда потребуется бесконечное время.
def takeWhile(p: (Nothing) ⇒ Boolean): Stream[Nothing]
Возвращает самую длинную префиксную часть этого Stream, элементы которой удовлетворяют предикату p.
- p
тестовый предикат.
- returns
Новый поток, содержащий элементы, удовлетворяющие предикату
p.
- Definition Classes
- Stream → LinearSeqOptimized → IterableLike → TraversableLike → GenTraversableLike
+ naturalsFrom(0) takeWhile { _ < 5 } mkString ", "
produces: "0, 1, 2, 3, 4"
def thisCollection: collection.LinearSeq[Nothing]
Базовая коллекция, представленная как экземпляр . По умолчанию это текущий объект коллекции, но может быть переопределён.Seq
- Attributes
- protected[this]
- Definition Classes
- LinearSeqLike → SeqLike → IterableLike → TraversableLike
def to[Col[_]]: Col[A]
Преобразование этого потока в другой путём копирования всех элементов.
Примечание: не завершится для бесконечных коллекций.
- Col
Тип коллекции для создания.
- returns
новая коллекция, содержащая все элементы этого потока.
- Definition Classes
- TraversableLike → TraversableOnce → GenTraversableOnce
def toArray: Array[A]
Преобразует этот поток в массив.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
массив, содержащий все элементы этого потока. Для типа элементов этого потока должен быть доступен
ClassTag.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def toBuffer[B >: Nothing]: Buffer[B]
Использует содержимое этого итерируемого объекта или итератора для создания нового изменяемого буфера.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
буфер, содержащий все элементы этого итерируемого объекта или итератора.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def toCollection(repr: Stream[Nothing]): collection.LinearSeq[Nothing]
Преобразование из коллекций типа Repr в объекты . По умолчанию это реализуется как просто приведение типов, но это можно переопределить. Seq
- Атрибуты
- protected[this]
- Определяющие классы
- LinearSeqLike → SeqLike → IterableLike → TraversableLike
def toIndexedSeq: IndexedSeq[Nothing]
Преобразует этот итерируемый объект или итератор в индексированную последовательность.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
индексированная последовательность, содержащая все элементы этого итерируемого объекта или итератора.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def toIterable: collection.Iterable[Nothing]
Возвращает эту итерируемую коллекцию как итерируемую коллекцию.
Новая коллекция не будет создана; ленивые коллекции останутся ленивыми.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
итерируемый объект, содержащий все элементы этой итерируемой коллекции.
- Определяющие классы
- IterableLike → TraversableOnce → GenTraversableOnce
def toIterator: Iterator[Nothing]
Возвращает итератор по элементам этой итерируемой коллекции. Возвращает тот же результат, что и iterator.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
итератор, содержащий все элементы этой итерируемой коллекции.
- Определяющие классы
- IterableLike → TraversableLike → GenTraversableOnce
- Аннотации
- @deprecatedOverriding( message = ... , since = "2.11.0" )
def toList: scala.List[Nothing]
Преобразует этот итерируемый объект или итератор в список.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
список, содержащий все элементы этого итерируемого объекта или итератора.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def toMap[T, U]: collection.Map[T, U]
Преобразует этот поток в карту. Этот метод недоступен, если элементы не являются членами Tuple2, каждая ((T, U)) становится парой ключ-значение в карте. Повторяющиеся ключи будут перезаписываться более поздними ключами: если это неупорядоченная коллекция, какой ключ находится в результирующей карте, не определено.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
карта типа
immutable.Map[T, U], содержащая все пары ключ/значение типа(T, U)этого потока.
- Определяющие классы
- TraversableOnce → GenTraversableOnce
def toSeq: Seq[Nothing]
Преобразует эту неизменяемую последовательность в последовательность.
Примечание: не будет завершаться для коллекций бесконечного размера.
Новая коллекция не будет создана; в частности, ленивые последовательности останутся ленивыми.
- возвращает
последовательность, содержащая все элементы этой неизменяемой последовательности.
- Определяющие классы
- Seq → SeqLike → GenSeqLike → TraversableOnce → GenTraversableOnce
def toSet[B >: Nothing]: Set[B]
Преобразует этот итерируемый объект или итератор в множество.
Примечание: не завершит работу для коллекций бесконечного размера.
- возвращает
множество, содержащее все элементы этого итерируемого объекта или итератора.
- Классы определений
- TraversableOnce → GenTraversableOnce
def toStream: Stream[Nothing]
Преобразует этот поток в поток.
- возвращает
поток, содержащий все элементы этого потока.
- Классы определений
- Stream → IterableLike → TraversableLike → GenTraversableOnce
def toString(): String
Преобразует этот поток в строку.
- возвращает
строковое представление этой коллекции. По умолчанию эта строка состоит из
stringPrefixэтого потока, за которым следуют все элементы, разделенные запятыми и заключенные в скобки.
- Классы определений
- Stream → SeqLike → Function1 → TraversableLike → AnyRef → Any
def toTraversable: collection.Traversable[Nothing]
Преобразует эту итерируемую коллекцию в неуказанный Traversable. Вернёт ту же коллекцию, если этот экземпляр уже Traversable.
Примечание: не завершит работу для коллекций бесконечного размера.
- возвращает
Traversable, содержащий все элементы этой итерируемой коллекции.
- Классы определений
- TraversableLike → TraversableOnce → GenTraversableOnce
- Аннотации
- @deprecatedOverriding( message = ... , since = "2.11.0" )
def toVector: scala.Vector[Nothing]
Преобразует этот итерируемый объект или итератор в Vector.
Примечание: не завершит работу для коллекций бесконечного размера.
- возвращает
вектор, содержащий все элементы этого итерируемого объекта или итератора.
- Классы определений
- TraversableOnce → GenTraversableOnce
def transpose[B](implicit asTraversable: (Nothing) ⇒ GenTraversableOnce[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
тип элементов каждой итерируемой коллекции.
- asTraversable
неявное преобразование, которое утверждает, что тип элемента этой коллекции является
Traversable.- возвращает
двумерная коллекция коллекций, в которой n-я строка является n-м столбцом этой коллекции.
- Классы определений
- GenericTraversableTemplate
- Аннотации
- @migration
- Миграция
(Изменено в версии 2.9.0)
transposeвыбрасываетIllegalArgumentExceptionесли коллекции не имеют одинаковый размер.- Исключения
IllegalArgumentException, если все коллекции в этой коллекции не имеют одинаковый размер.
def union(that: collection.Seq[Nothing]): Stream[Nothing]
Создает новую последовательность, которая содержит все элементы этого потока и также все элементы заданной последовательности. xs union ys эквивалентно xs ++ ys.
Другой способ выразить это - xs union ys вычисляет сохраняющее порядок объединение множеств xs и ys. union является поэтому аналогом diff и intersect, которые также работают с множествами.
Примечание: не завершит работу для коллекций бесконечного размера.
- that
последовательность для добавления.
- возвращает
новый поток, который содержит все элементы этого потока, за которым следуют все элементы
that.
- Классы определений
- SeqLike → GenSeqLike
def unzip[A1, A2](implicit asPair: (Nothing) ⇒ (A1, A2)): (Stream[A1], Stream[A2])
Преобразует эту коллекцию пар в две коллекции первой и второй половины каждой пары.
val xs = Traversable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Traversable(1, 2, 3),
// Traversable(one, two, three))
- A1
тип первой половины элементов пар
- A2
тип второй половины элементов пар
- asPair
неявное преобразование, которое утверждает, что тип элемента этой коллекции является парой.
- возвращает
пара коллекций, содержащая первую, соответственно вторую половину каждой пары элементов этой коллекции.
- Классы определений
- GenericTraversableTemplate
def unzip3[A1, A2, A3](implicit asTriple: (Nothing) ⇒ (A1, A2, A3)): (Stream[A1], Stream[A2], Stream[A3])
Преобразует это множество троек в три множества из первого, второго и третьего элемента каждой тройки.
val xs = Traversable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Traversable(1, 2, 3),
// Traversable(one, two, three),
// Traversable(1, 2, 3))
- A1
тип первого члена элементов-троек
- A2
тип второго члена элементов-троек
- A3
тип третьего члена элементов-троек
- asTriple
явное преобразование, которое утверждает, что тип элементов этого набора — тройка.
- returns
тройка наборов, содержащая соответственно первый, второй и третий член каждой тройки элементов из этого набора.
- Definition Classes
- GenericTraversableTemplate
def updated(index: Int, elem: A): Stream[A]
Копия этого потока с одним изменённым элементом.
- index
позиция замены
- elem
элемент замены
- returns
копия этого потока с элементом в позиции
indexзаменённым наelem.
- Definition Classes
- SeqLike → GenSeqLike
def view: StreamView[Nothing, Stream[Nothing]]
Создаёт нестрогий вид этого потока.
- returns
нестрогий вид этого потока.
- Definition Classes
- Stream → SeqLike → IterableLike → TraversableLike
def view(from: Int, until: Int): SeqView[Nothing, Stream[Nothing]]
Создаёт нестрогий вид среза этой последовательности.
Примечание: разница между view и slice заключается в том, что view создаёт представление текущей последовательности, а slice создаёт новую последовательность.
Примечание: view(from, to) эквивалентно view.slice(from, to).
- from
индекс первого элемента представления
- until
индекс элемента, следующего за представлением
- returns
нестрогий вид среза этой последовательности, начиная с индекса
fromи до (но не включая) индексuntil.
- Definition Classes
- SeqLike → IterableLike → TraversableLike
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long): Unit
final def withFilter(p: (Nothing) ⇒ Boolean): FilterMonadic[Nothing, Stream[Nothing]]
FilterMonadic, который позволяет GC головы потока во время обработки
- p
предикат для проверки элементов.
- returns
объект класса
WithFilter, который поддерживает операцииmap,flatMap,foreach, иwithFilter. Все эти операции применяются к тем элементам этого потока, которые удовлетворяют предикатуp.
- Definition Classes
- Stream → TraversableLike → FilterMonadic
- Annotations
- @noinline()
final def zip[A1 >: Nothing, B, That](that: GenIterable[B])(implicit bf: CanBuildFrom[Stream[Nothing], (A1, B), That]): That
Возвращает поток, сформированный из этого потока и указанного потока that путём сопоставления каждого элемента первого с элементом на той же позиции во втором.
Если один из двух потоков длиннее другого, оставшиеся элементы игнорируются.
Тип возвращаемого значения этой функции может быть не очевиден. Ленивость возвращаемого значения отличается от ленивости partition. В partition мы получаем scala.Tuple2 из двух ленивых Stream , тогда как здесь мы получаем один ленивый Stream из scala.Tuple2 , где сигнатура типа scala.Tuple2 составляет (A1, B).
- A1
Тип первого параметра кортежа, полученного в результате слияния
- B
Тип второго параметра кортежа, полученного в результате слияния
- That
Тип возвращаемого
Stream.- that
Итерируемый объект, предоставляющий вторую половину каждой пары результата
- bf
неявное значение класса
CanBuildFrom, определяющее класс результатаThatиз текущего типа представленияReprи нового типа элемента(A1, B).- returns
Stream({a0,b0}, ..., {amin(m,n),bmin(m,n))}при вызовеStream(a0, ..., am) zip Stream(b0, ..., bn).
- Definition Classes
- Stream → IterableLike → GenIterableLike
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1) naturalsFrom(1) zip naturalsFrom(2) take 5 foreach println // prints // (1,2) // (2,3) // (3,4) // (4,5) // (5,6)
def zipAll[B](that: collection.Iterable[B], thisElem: A, thatElem: B): Stream[(A, B)]
Возвращает поток, сформированный из этого потока и другой итерируемой коллекции, объединяя соответствующие элементы в пары. Если одна из двух коллекций короче другой, используются плацехолдеры для расширения более короткой коллекции до длины более длинной.
- B
тип второй половины возвращаемых пар
- that
Итерируемый объект, предоставляющий вторую половину каждой пары результата
- thisElem
элемент, который будет использоваться для заполнения результата, если этот поток короче
that.- thatElem
элемент, который будет использоваться для заполнения результата, если
thatкороче этого потока.- returns
новый поток, содержащий пары, состоящие из соответствующих элементов этого потока и
that. Длина возвращаемой коллекции равна максимальному из длин этого потока иthat. Если этот поток корочеthat, для заполнения результата используются значенияthisElem. Еслиthatкороче этого потока, для заполнения результата используются значенияthatElem.
- Definition Classes
- IterableLike → GenIterableLike
def zipWithIndex[A1 >: Nothing, That](implicit bf: CanBuildFrom[Stream[Nothing], (A1, Int), That]): That
Объединяет этот итерируемый объект с его индексами. s.zipWithIndex эквивалентно s
zip s.indices.
Этот метод очень похож на zip в том, что он возвращает один ленивый Stream из scala.Tuple2.
- A1
Тип первого элемента scala.Tuple2 в результирующем потоке.
- That
Тип результирующего
Stream.- bf
неявное значение класса
CanBuildFrom, определяющее класс результатаThatиз текущего типа представленияReprи нового типа элемента(A1, Int).- returns
Stream({a0,0}, ..., {an,n)}
- Definition Classes
- Stream → IterableLike → GenIterableLike
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1) (naturalsFrom(1) zipWithIndex) take 5 foreach println // prints // (1,0) // (2,1) // (3,2) // (4,3) // (5,4)
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/collection/immutable/Stream$$Empty$.html