Класс Stream.Stream
sealed abstract class Stream[+A] extends AbstractSeq[A] with LinearSeq[A] with LinearSeqOps[A, Stream, Stream[A]] with IterableFactoryDefaults[A, Stream] with Serializable
| Устаревший | |
|---|---|
| Надтипы | 24 типа |
| Известные подтипы |
Абстрактные методы
Исходный код
Вынуждает вычисление всего Stream и возвращает его.
| Возвращает | Полностью реализованное |
|---|---|
| Примечание | Часто мы используем |
Исходный код
Остальная часть коллекции без первого элемента.
Конкретные методы
Исходный код
Создаёт поток, состоящий из данного первого элемента, за которым следуют элементы из другого потока.
Исходный код
Создаёт поток, состоящий из конкатенации данного потока и другого потока.
Исходный код
Добавляет все элементы этой неизменяемой коллекции в StringBuilder, используя начальные, конечные и разделительные строки. Текст, который записывается, начинается со строки start и заканчивается строкой end. Внутри строковые представления (относительно метода toString) всех элементов этой неизменяемой коллекции разделяются строкой sep.
Неопределённые элементы представляются "_", неопределённый хвост — "<not computed>", а циклы — "<cycle>".
| Параметры |
|
|---|---|
| Возвращает | строковый буфер |
| Определяющие классы | IterableOnceOps |
Исходный код
Строит новую неизменяемую коллекцию, применяя частичную функцию ко всем элементам этой неизменяемой коллекции, для которых функция определена.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | новая неизменяемая коллекция, полученная путём применения заданной частичной функции |
| Определяющие классы | IterableOps -> IterableOnceOps |
Исходный код
Находит первый элемент неизменяемой коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры |
|
|---|---|
| Возвращает | значение Option, содержащее применённую pf к первому значению, для которого она определена, или |
| Пример |
|
| Определяющие классы | IterableOnceOps |
Исходный код
Отбирает все элементы этой неизменяемой коллекции, удовлетворяющие предикату.
| Параметры |
|
|---|---|
| Возвращает | новая неизменяемая коллекция, состоящая из всех элементов этой неизменяемой коллекции, удовлетворяющих заданному предикату |
| Определяющие классы | IterableOps -> IterableOnceOps |
Исходный код
Отбирает все элементы этой неизменяемой коллекции, не удовлетворяющие предикату.
| Параметры |
|
|---|---|
| Возвращает | новая неизменяемая коллекция, содержащая все элементы этой неизменяемой коллекции, не удовлетворяющие заданному предикату |
| Определяющие классы | IterableOps -> IterableOnceOps |
Исходный код
Находит первый элемент неизменяемой коллекции, удовлетворяющий предикату, если такой есть.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | значение типа Option, содержащее первый элемент в неизменяемой коллекции, удовлетворяющий |
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
Источник
Создает новую неизменяемую коллекцию, применяя функцию ко всем элементам этой неизменяемой коллекции и используя элементы полученных коллекций.
Например:
def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")
Тип результирующей коллекции определяется статическим типом неизменяемой коллекции. Это иногда может привести к неожиданным результатам. Например:
// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)
// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)
// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)
// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая неизменяемая коллекция, полученная в результате применения заданной функции, принимающей коллекцию |
| Определяющие классы | IterableOps -> IterableOnceOps |
Источник
final override def foldLeft[B](z: B)(op: (B, A) => B): B
Специализация foldLeft для потоков, которая позволяет сборщику мусора собирать объекты по ходу выполнения.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Накопленное значение от последовательного применения |
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
Источник
Применяет заданную функцию f к каждому элементу этой линейной последовательности (придерживаясь порядка элементов).
| Параметры значения |
|
|---|---|
| Примечание |
Переопределено здесь как final для запуска оптимизации хвостовой рекурсии, которая заменяет «this» на «tail» на каждой итерации. Это абсолютно необходимо для того, чтобы позволить сборщику мусора собирать базовый поток, по мере потребления элементов. Эта функция принудительно реализует весь поток, если только |
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
Источник
Компаньон-объект этой неизменяемой коллекции, предоставляющий различные методы фабрики.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Определяющие классы | LinearSeq -> LinearSeq -> Seq -> Iterable -> Seq -> Iterable -> IterableOps |
Источник
Поток, полученный в результате конкатенации этого потока с аргументным потоком.
| Параметры значения |
|
|---|---|
| Возвращает | Поток, содержащий элементы этого потока и объекта iterable. |
Источник
Строит новую неизменяемую коллекцию, применяя функцию ко всем элементам этой неизменяемой коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая неизменяемая коллекция, полученная в результате применения данной функции |
| Определяющие классы | IterableOps -> IterableOnceOps |
Источник
Пара, состоящая из, во-первых, всех элементов, удовлетворяющих предикату p, и, во-вторых, всех элементов, которые не удовлетворяют ему. Интересно, потому что разделяет коллекцию на две части.
Стандартная реализация здесь требует два прохода по коллекции. Строгие коллекции имеют переопределенный метод partition в StrictOptimizedIterableOps, который требует только одного прохода.
| Определяющие классы | IterableOps |
|---|
Источник
Копия неизменяемой коллекции с добавленным элементом в начало.
Также, исходная неизменяемая коллекция не изменяется, поэтому вам нужно будет сохранить результат.
Пример:
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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая неизменяемая коллекция, состоящая из |
| Определяющие классы | SeqOps |
Источник
final override def reduceLeft[B >: A](f: (B, A) => B): B
Специализация reduceLeft для потоков, которая позволяет сборщику мусора собирать объекты по ходу выполнения.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Накопленное значение от последовательного применения |
| Определяющие классы | IterableOnceOps |
Источник
Производит неизменяемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Определяющие классы | IterableOps -> IterableOnceOps |
Источник
Выбирает первые n элементов.
| Параметры значения |
|
|---|---|
| Возвращает | неизменяемый набор, состоящий только из первых |
| Определяющие классы | IterableOps -> IterableOnceOps |
Источник
| Возвращает |
строковое представление этого набора. Неопределённые элементы представлены как
|
|---|---|
| Определяющие классы | Seq -> Function1 -> Iterable -> Any |
Источник
Функция, которая позволяет сборщику мусора удалить голову потока во время обработки
| Определяющие классы | IterableOps |
|---|
Источник
Возвращает неизменяемый набор, сформированный из этого неизменяемого набора и другого итерируемого набора, объединив соответствующие элементы в пары. Если один из двух наборов длиннее другого, оставшиеся элементы игнорируются.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый неизменяемый набор, содержащий пары, состоящие из соответствующих элементов этого неизменяемого набора и |
| Определяющие классы | IterableOps |
Источник
Объединяет этот неизменяемый набор с его индексами.
| Возвращает | Новый неизменяемый набор, содержащий пары, состоящие из всех элементов этого неизменяемого набора, соединённых с их индексом. Индексы начинаются с |
|---|---|
| Пример | |
| Определяющие классы | IterableOps -> IterableOnceOps |
Наследуемые методы
Источник
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для concat
| Наследуется из | IterableOps |
|---|
Источник
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]
Псевдоним для prependedAll
| Определяющие классы | SeqOps -> IterableOps |
|---|---|
| Наследуется из | SeqOps |
Источник
final def +:[B >: A](elem: B): CC[B]
Псевдоним для prepended.
Обратите внимание, что операторы с окончанием двоеточием являются правоассоциативными (см. пример). Мнемоника для +: против :+: двоеточие ставится с правой стороны коллекции.
| Наследуется из | SeqOps |
|---|
Источник
final def :+[B >: A](elem: B): CC[B]
Псевдоним для appended
Обратите внимание, что операторы с окончанием двоеточием являются правоассоциативными (см. пример). Мнемоника для +: против :+: двоеточие ставится с правой стороны коллекции.
| Наследуется из | SeqOps |
|---|
Источник
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для appendedAll
| Наследуется из | SeqOps |
|---|
Источник
Добавляет все элементы этого набора в строковый буфер. Записываемый текст состоит из строковых представлений (с учётом метода 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
| Параметры значения |
|
|---|---|
| Возвращает | строковый буфер |
| Наследуется из | IterableOnceOps |
Источник
Добавляет все элементы этого набора в строковый буфер, используя разделительную строку. Записываемый текст состоит из строковых представлений (с учётом метода 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
| Параметры значения |
|
|---|---|
| Возвращает | строковый буфер |
| Наследуется из | IterableOnceOps |
Источник
Компонует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.
Обратите внимание, что вызов isDefinedAt на полученной частичной функции может применить первую частичную функцию и выполнить её побочные эффекты. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, суженной другой частичной функцией, которая отображает аргументы |
| Наследуется из | PartialFunction |
Источник
override def andThen[C](k: A => C): PartialFunction[A, C]
Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
Если тип времени выполнения функции является PartialFunction, используется другой метод andThen (обратите внимание на его предостережения).
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | частичная функция с областью определения этой частичной функции, возможно суженной заданной функцией, которая сопоставляет аргументы |
| Классы определений | PartialFunction -> Function1 |
| Унаследовано от | PartialFunction |
Источник
def appended[B >: A](elem: B): CC[B]
Копия этого последовательности с добавленным элементом.
Примечание: не завершится для бесконечных коллекций.
Пример:
scala> val a = List(1) a: List[Int] = List(1) scala> val b = a :+ 2 b: List[Int] = List(1, 2) scala> println(a) List(1)
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следуют |
| Унаследовано от | SeqOps |
Источник
def appendedAll[B >: A](suffix: IterableOnce[B]): CC[B]
Возвращает новую последовательность, содержащую элементы левого операнда, за которыми следуют элементы правого операнда. Тип элементов последовательности — это самый общий суперкласс, охватывающий типы элементов двух операндов.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая коллекция типа |
| Унаследовано от | SeqOps |
Источник
Получение элемента по указанному индексу. Эта операция предоставляется для удобства в Seq. Не следует предполагать, что она эффективна, если у вас нет IndexedSeq.
| Классы определений | LinearSeqOps -> SeqOps |
|---|---|
| Унаследовано от | LinearSeqOps |
Источник
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1
Применение этой частичной функции к заданному аргументу, если он содержится в области определения функции. Применение функции по умолчанию, если эта частичная функция не определена.
Обратите внимание, что выражение pf.applyOrElse(x, default) эквивалентно
if(pf isDefinedAt x) pf(x) else default(x)
за исключением того, что метод applyOrElse может быть реализован более эффективно. Для всех частичных функций-литералов компилятор генерирует реализацию applyOrElse, которая избегает двойного вычисления совпадений с шаблонами и условий. Это делает applyOrElse основой для эффективной реализации многих операций и сценариев, таких как:
- объединение частичных функций в цепочки orElse/andThen не приводит к чрезмерному вычислению apply/isDefinedAt - lift и unlift не вычисляют исходные функции дважды при каждом вызове - runWith позволяет эффективно объединять частичные функции в императивном стиле с условными действиями
Для классов частичных функций, не являющихся литералами, с ненулевой функцией isDefinedAt рекомендуется переопределить applyOrElse с настраиваемой реализацией, которая избегает двойного вычисления isDefinedAt. Это может улучшить производительность и предсказуемое поведение в отношении побочных эффектов.
| Параметры значений |
|
|---|---|
| Возвращает | результат применения этой функции или функции по умолчанию. |
| Унаследовано от | PartialFunction |
Источник
Метод, который должен вызываться из каждой хорошо спроектированной функции equals, открытой для переопределения в подклассе. См. Programming in Scala, глава 28 для обсуждения и проектирования.
| Параметры значений |
|
|---|---|
| Возвращает | true, если эта инстанция может быть равна |
| Унаследовано от | Seq |
Источник
Итерирует по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке следования. Таким образом, "xy" и "yy" являются комбинациями длины 2 последовательности "xyy", но "yx" — нет. Если существует несколько способов сгенерировать одну и ту же подпоследовательность, будет возвращена только одна.
Например, "xyyy" имеет три различных способа создания "xy", в зависимости от того, какой первый, второй или третий "y" выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трех будет выбран, является реализационным detail, который не определен.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, проходящий по возможным n-элементным комбинациям этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Источник
Составление другой частичной функции k с этой частичной функцией таким образом, что эта частичная функция применяется к результатам k.
Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить ее побочный эффект. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | частичная функция с областью определения другой частичной функции, суженной этой частичной функцией, которая сопоставляет аргументы |
| Унаследовано от | PartialFunction |
Источник
Составление двух экземпляров Function1 в новую Function1, с применением этой функции последней.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая функция |
| Унаследовано от | Function1 |
Источник
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]
Возвращает новую последовательность, содержащую элементы левого операнда, за которыми следуют элементы правого операнда. Тип элементов последовательности — это самый общий суперкласс, охватывающий типы элементов двух операндов.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | новая последовательность, содержащая все элементы этой последовательности, за которыми следуют все элементы |
| Определяющие классы | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Исходный код
Проверяет, содержит ли эта последовательность заданное значение в качестве элемента.
Примечание: для бесконечных коллекций может не завершиться.
| Параметры значений |
|
|---|---|
| Возвращаемое значение |
|
| Определяющие классы | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
Проверяет, содержит ли эта последовательность заданную последовательность в качестве подпоследовательности.
Примечание: для бесконечных коллекций может не завершиться.
| Параметры значений |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start не более чем len элементами из этой коллекции.
Копирование завершается, когда скопированы все элементы этой коллекции, достигнут конец массива или скопировано len элементов.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Его использование не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этой коллекции.
Копирование завершается, когда скопированы все элементы этой коллекции или достигнут конец массива.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Его использование не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этого набора.
Копирование прекращается, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует удалить. Его использование не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя условию проверки.
Примечание: не завершится для наборов бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент этой последовательности соответствующему элементу другой последовательности, удовлетворяя условию проверки.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Source
Подсчитывает количество элементов в наборе, удовлетворяющих условию.
Примечание: не завершится для наборов бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | количество элементов, удовлетворяющих условию |
| Унаследовано от | IterableOnceOps |
Source
Вычисляет разность мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | новая последовательность, которая содержит все элементы этой последовательности за исключением некоторых вхождений элементов, которые также появляются в |
| Унаследовано от | SeqOps |
Source
def distinct: C
Выбирает все элементы этой последовательности, игнорируя дубликаты.
| Возвращает | новую последовательность, содержащую все элементы этой последовательности без дубликатов. |
|---|---|
| Унаследовано от | SeqOps |
Source
def distinctBy[B](f: A => B): C
Выбирает все элементы этой последовательности, игнорируя дубликаты, как определено ==, после применения преобразующей функции f.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую последовательность, содержащую все элементы этой последовательности без дубликатов. |
| Унаследовано от | SeqOps |
Source
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемую коллекцию, состоящую из всех элементов этой итерируемой коллекции, кроме первых |
| Унаследовано от | IterableOps |
Source
Выбирает все элементы, кроме последних n.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемую коллекцию, состоящую из всех элементов этой итерируемой коллекции, кроме последних |
| Унаследовано от | IterableOps |
Source
Удаляет наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | наибольший суффикс этой итерируемой коллекции, первый элемент которого не удовлетворяет предикату |
| Унаследовано от | IterableOps |
Source
def elementWise: ElementWiseExtractor[A, B]
Возвращает объект-экстрактор с методом unapplySeq, который извлекает каждый элемент данных последовательности.
| Пример |
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
case firstChar.unlift.elementWise(c0, c1, c2) =>
println(s"$c0, $c1, $c2") // Output: f, b, b
}
|
|---|---|
| Унаследовано от | PartialFunction |
Source
override def empty: CC[A]
Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция
| Возвращает | пустую итерируемую коллекцию типа |
|---|---|
| Классы определения | IterableFactoryDefaults -> IterableOps |
| Унаследовано от | IterableFactoryDefaults |
Source
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Source
Универсальный метод равенства, определенный в AnyRef.
| Классы определения | Seq -> Equals -> Any |
|---|---|
| Унаследовано от | Seq |
Source
Проверяет, выполняется ли предикат хотя бы для одного элемента этой последовательности.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Классы определения | LinearSeqOps -> IterableOnceOps |
| Унаследовано от | LinearSeqOps |
Source
Находит последний элемент последовательности, удовлетворяющий предикату, если таковой существует.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | значение типа option, содержащее последний элемент последовательности, который удовлетворяет |
| Классы определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Source
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[B]
Преобразует эту итерируемую коллекцию коллекций в итерируемую коллекцию, образованную элементами этих коллекций.
Тип результирующей коллекции будет определяться типом итерируемой коллекции. Например:
val xs = List(
Set(1, 2, 3),
Set(1, 2, 3)
).flatten
// xs == List(1, 2, 3, 1, 2, 3)
val ys = Set(
List(1, 2, 3),
List(3, 2, 1)
).flatten
// ys == Set(1, 2, 3)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, полученная в результате конкатенации всех итерируемых коллекций элементов. |
| Унаследовано от | IterableOps |
Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Складывает элементы этой коллекции с использованием заданного ассоциативного бинарного оператора. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективного порядка обхода.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат применения оператора свертки |
| Унаследовано от | IterableOnceOps |
Источник
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого набора и начальному значению, двигаясь справа налево.
Примечание: не завершится для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если только тип базового набора не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Источник
Проверяет, выполняется ли предикат для всех элементов этой последовательности.
Примечание: может не завершиться для наборов бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Классы определения | LinearSeqOps -> IterableOnceOps |
| Унаследовано от | LinearSeqOps |
Источник
protected def fromSpecific(coll: IterableOnce[A]): CC[A]
Определяет, как преобразовать заданный Iterable[A] в набор типа C.
Этот процесс может выполняться строго или нестрого (то есть без оценки элементов результирующих наборов). Другими словами, этот метод определяет модель оценки набора.
| Примечание |
При реализации пользовательского типа набора и уточнении Как свидетельствует аннотация |
|---|---|
| Унаследовано от | IterableFactoryDefaults |
Источник
Разделяет этот итерируемый набор на карту итерируемых наборов по некоторой функции-дискриминатору.
Примечание: даже при применении к представлению или ленивому набору он всегда принудительно выполняет элементы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
Карта от ключей до итерируемых наборов, такая что выполняется следующее инвариантное условие: (xs groupBy f)(k) = xs filter (x => f(x) == k) То есть, каждый ключ |
| Унаследовано от | IterableOps |
Источник
Разделяет этот итерируемый набор на карту итерируемых наборов в соответствии с функцией-дискриминатором key. Каждый элемент в группе преобразуется в значение типа B с помощью функции value.
Это эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.
case class User(name: String, age: Int) def namesByAge(users: Seq[User]): Map[Int, Seq[String]] = users.groupMap(_.age)(_.name)
Примечание: даже при применении к представлению или ленивому набору он всегда принудительно вычисляет элементы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Унаследовано от | IterableOps |
Источник
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]
Разделяет этот итерируемый набор в карту в соответствии с функцией дискриминации key. Все значения, имеющие одинаковую дискриминацию, затем преобразуются функцией f и затем сводятся к одному значению с помощью функции reduce.
Это эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.
def occurrences[A](as: Seq[A]): Map[A, Int] = as.groupMapReduce(identity)(_ => 1)(_ + _)
Примечание: даже при применении к представлению или ленивому набору он всегда принудительно вычисляет элементы.
| Унаследовано от | IterableOps |
|---|
Источник
Разделяет элементы в наборах фиксированного размера.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Унаследовано от | IterableOps |
Источник
Вычисляет хэш-код объекта.
Алгоритм хэширования по умолчанию зависит от платформы.
Важно отметить, что два объекта могут иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но при этом не быть равными (o1.equals(o2) возвращает false). Дегенеративный метод мог бы всегда возвращать 0. Однако, если два объекта равны (o1.equals(o2) возвращает true) , они должны иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.
| Возвращает | значение хэш-кода для этого объекта. |
|---|---|
| Классы определения | Seq -> Any |
| Унаследовано от | Seq |
Источник
def head: A
Выбирает первый элемент этого итерируемого набора.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Возвращает | первый элемент этого итерируемого набора. |
|---|---|
| Исключения |
|
| Унаследовано от | IterableOps |
Source
override def headOption: Option[A]
Возвращает первый элемент, если он есть.
| Возвращает | первый элемент этой последовательности, если она непустая, |
|---|---|
| Классы-определения | LinearSeqOps -> IterableOps |
| Унаследовано от | LinearSeqOps |
Source
Находит индекс первого вхождения значения в этой последовательности.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Source
Находит индекс первого вхождения значения в этой последовательности после или на заданном начальном индексе.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Source
Находит первый индекс, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Source
Находит первый индекс после или на заданном начальном индексе, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Source
Находит индекс первого элемента, удовлетворяющего некоторому предикату, после или на заданном начальном индексе.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Классы-определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Source
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Исходный код
Создает диапазон всех индексов этой последовательности.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | значение |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
def init: C
Начальная часть коллекции без последнего элемента.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Унаследовано от | IterableOps |
|---|
Исходный код
Итерирует по начальным частям этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, при этом промежуточные значения — результаты последовательных применений init.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | итератор по всем начальным частям этой итерируемой коллекции |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Исходный код
Вычисляет пересечение мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новая последовательность, которая содержит все элементы этой последовательности, которые также присутствуют в |
| Унаследовано от | SeqOps |
Исходный код
Проверяет, содержит ли эта последовательность указанный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Классы определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
Проверяет, пуста ли последовательность.
Примечание: Реализации в подклассах, которые не являются многократно проходимыми, должны следить за тем, чтобы не потреблять никаких элементов при вызове isEmpty.
| Возвращает |
|
|---|---|
| Классы определения | SeqOps -> IterableOnceOps |
| Унаследовано от | SeqOps |
Источник
override def isTraversableAgain: Boolean
Проверяет, может ли эта итерируемая коллекция быть пройдена повторно. Всегда истинно для Iterables и ложно для Iterators, если не переопределено.
| Возвращает |
|
|---|---|
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Итератор может быть использован только один раз
| Унаследовано от | LinearSeqOps |
|---|
Источник
| Возвращает | Количество элементов в этой коллекции, если оно может быть вычислено недорого, -1 в противном случае. Недорого обычно означает: не требует обхода коллекции. |
|---|---|
| Унаследовано от | IterableOnce |
Источник
override def last: A
Выбирает последний элемент.
| Возвращает | Последний элемент этой последовательности. |
|---|---|
| Исключения |
|
| Классы определения | LinearSeqOps -> IterableOps |
| Унаследовано от | LinearSeqOps |
Источник
Находит индекс последнего вхождения некоторого значения в этой последовательности до или на заданном индексе конца.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Значения параметров |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит последний индекс, где эта последовательность содержит заданную последовательность в качестве среза.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Значения параметров |
|
|---|---|
| Возвращает | последний индекс, такой что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности |
| Унаследовано от | SeqOps |
Источник
Находит последний индекс до или на заданном индексе конца, где эта последовательность содержит заданную последовательность в качестве среза.
Примечание: не будет завершаться для коллекций бесконечного размера.
END_OF_DOCUMENT_MARKER| Параметры значения |
|
|---|---|
| Возвращает | последний индекс |
| Унаследовано от | SeqOps |
Исходный код
Находит индекс последнего элемента, удовлетворяющего некоторому предикату до или в заданном индексе конца.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Классы определений | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
Находит индекс последнего элемента, удовлетворяющего некоторому предикату.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс последнего элемента этой последовательности, удовлетворяющего предикату |
| Унаследовано от | SeqOps |
Исходный код
def lastOption: Option[A]
Возвращает опционально последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не является упорядоченным.
| Возвращает | последний элемент этой итерируемой коллекции$, если она не пустая, |
|---|---|
| Унаследовано от | IterableOps |
Исходный код
Аналогично zip за исключением того, что элементы в каждой коллекции не потребляются до тех пор, пока над возвращенным LazyZip2 декоратором не будет вызвана строгая операция.
Вызовы lazyZip могут быть объединены для поддержки высших арностей (до 4) без затрат на построение и деконструирование промежуточных кортежей.
val xs = List(1, 2, 3) val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d) // res == List(4, 8, 12)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | декоратор |
| Унаследовано от | Iterable |
Исходный код
Длина (количество элементов) последовательности. size — псевдоним для length в коллекциях Seq.
| Унаследовано от | LinearSeqOps |
|---|
Исходный код
Сравнивает длину этой последовательности с размером другой Iterable.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < that.size x == 0 if this.length == that.size x > 0 if this.length > that.size Метод, как реализован здесь, не вызывает |
| Определяющие классы | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
Сравнивает длину этой последовательности со значением теста.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len Метод, как реализован здесь, не вызывает |
| См. также | |
| Определяющие классы | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
final def lengthIs: SizeCompareOps
Возвращает объект класса со значениями, содержащими операции сравнения длины этой последовательности со значением теста.
Эти операции реализованы с точки зрения lengthCompare(Int) и позволяют использовать более удобочитаемые выражения:
this.lengthIs < len // this.lengthCompare(len) < 0 this.lengthIs <= len // this.lengthCompare(len) <= 0 this.lengthIs == len // this.lengthCompare(len) == 0 this.lengthIs != len // this.lengthCompare(len) != 0 this.lengthIs >= len // this.lengthCompare(len) >= 0 this.lengthIs > len // this.lengthCompare(len) > 0
| Унаследовано от | SeqOps |
|---|
Исходный код
Преобразует эту частичную функцию в обычную функцию, возвращающую результат Option.
| Возвращает | функция, которая принимает аргумент |
|---|---|
| См. также | Function.unlift |
| Унаследовано от | PartialFunction |
Исходный код
Находит максимальный элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наибольший элемент этой коллекции по отношению к порядку |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наибольшим значением, измеренным функцией f по отношению к порядку |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который возвращает наибольшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Source
Находит наибольший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее наибольший элемент этой коллекции относительно порядка |
| Унаследовано от | IterableOnceOps |
Source
Находит наименьший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | наименьший элемент этой коллекции относительно порядка |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который возвращает наименьшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который возвращает наименьшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее первый элемент в этом наборе с наименьшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Исходный код
Находит наименьший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее наименьший элемент в этом наборе относительно порядка |
| Унаследовано от | IterableOnceOps |
Исходный код
Отображает все элементы этого набора в строке.
Делегирует addString, который может быть переопределен.
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (согласно методу |
|---|---|
| Унаследовано от | IterableOnceOps |
Исходный код
Отображает все элементы этого набора в строке с использованием разделительной строки.
Делегирует addString, который может быть переопределен.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (согласно методу |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Отображает все элементы этого набора в строке с использованием начальной, конечной и разделительной строк.
Делегирует addString, который может быть переопределен.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
protected def newSpecificBuilder: Builder[A, CC[A]]
| Возвращает | строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализация этого метода возможна, но полученный |
|---|---|
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как показывает аннотация |
| Унаследовано от | IterableFactoryDefaults |
Исходный код
Проверяет, не пуста ли коллекция.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Исходный код
Компонует эту частичную функцию с резервной частичной функцией, которая применяется там, где эта частичная функция не определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция, область определения которой является объединением областей определения этой частичной функции и |
| Унаследовано от | PartialFunction |
Исходный код
Копия этой последовательности с добавленным элементом до достижения заданной длины.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следует минимальное количество вхождений |
| Унаследовано от | SeqOps |
Исходный код
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])
Применяет функцию f к каждому элементу итерируемой коллекции и возвращает пару итерируемых коллекций: первая из значений, возвращённых f, которые были заключены в scala.util.Left, вторая — из заключённых в scala.util.Right.
Пример:
val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
case i: Int => Left(i)
case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пару итерируемых коллекций: первая из значений, возвращённых |
| Унаследовано от | IterableOps |
Source
Создаёт новую последовательность, где фрагмент элементов в этой последовательности заменяется другой последовательностью.
Замена по отрицательным индексам эквивалентна замене, начинающейся с 0. Замена по индексам, равным или большим длины исходной последовательности, добавляет замену в конец. Если заменяется больше элементов, чем существует, избыток игнорируется.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, за исключением того, что |
| Унаследовано от | SeqOps |
Source
def permutations: Iterator[C]
Итерируется по различным перестановкам.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, проходящий по различным перестановкам этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Source
def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]
Как и :++, возвращает новую коллекцию, содержащую элементы левого операнда, за которыми следуют элементы правого операнда.
Отличается от :++ тем, что правый операнд определяет тип результирующей коллекции, а не левый. Мнемоника: двоеточие стоит со стороны нового типа коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, которая содержит все элементы |
| Унаследовано от | SeqOps |
Source
Перемножает элементы этой коллекции.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | произведение всех элементов этой коллекции относительно оператора |
| Унаследовано от | IterableOnceOps |
Source
def reduce[B >: A](op: (B, B) => B): B
Сокращает элементы этой коллекции, используя указанный ассоциативный бинарный оператор.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат применения оператора reduce |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Опционально применяет бинарный оператор ко всем элементам этой коллекции слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение варианта, содержащее результат |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Сокращает элементы этой коллекции, если таковые имеются, с использованием указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определен и может быть недетерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Значение варианта, содержащее результат применения оператора reduce |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceRight[B >: A](op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции, справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции упорядочен или оператор является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Возвращает результат применения бинарного оператора ко всем элементам этой коллекции, справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции упорядочен или оператор является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение варианта, содержащее результат |
| Унаследовано от | IterableOnceOps |
Исходный код
def reverse: C
Возвращает новую последовательность с элементами в обратном порядке.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: даже при применении к представлению или ленивой коллекции она всегда будет принудительно вычислять элементы.
| Возвращает | Новая последовательность со всеми элементами этой последовательности в обратном порядке. |
|---|---|
| Унаследовано от | SeqOps |
Source
def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
| Возвращает | итератор, возвращающий элементы этой последовательности в обратном порядке |
|---|---|
| Унаследовано от | SeqOps |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Комбинирует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
за исключением того, что runWith реализовано через applyOrElse и, следовательно, потенциально более эффективно. Использование runWith позволяет избежать двойной оценки матчеров и защит для литералов частичной функции.
| Параметры значения |
|
|---|---|
| Возвращает | функция, которая отображает аргументы |
| См. также |
|
| Унаследовано от | PartialFunction |
Source
Являются ли элементы этой коллекции одинаковыми (и в том же порядке), что и элементы that?
| Классы определения | LinearSeqOps -> SeqOps |
|---|---|
| Унаследовано от | LinearSeqOps |
Source
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]
Вычисляет префиксное сканирование элементов коллекции.
Примечание: нейтральный элемент z может применяться более одного раза.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, содержащая префиксное сканирование элементов в этой итерируемой коллекции |
| Унаследовано от | IterableOps |
Source
def scanRight[B](z: B)(op: (A, B) => B): CC[B]
Создаёт коллекцию, содержащую кумулятивные результаты применения оператора справа налево. Голова коллекции — это последний кумулятивный результат.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
Примечание: даже при применении к представлению или ленивой коллекции всегда будет принудительно использовать элементы.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Унаследовано от | IterableOps |
Source
Поиск в интервале в этой отсортированной последовательности заданного элемента. Если эта последовательность является IndexedSeq, используется двоичный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована по тому же Ordering перед вызовом; в противном случае результаты неопределённы.
| Параметры значения |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Примечание | если |
| Унаследовано от | SeqOps |
Source
Поиск заданного элемента в этой отсортированной последовательности. Если последовательность является IndexedSeq, используется двоичный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована по тому же Ordering перед вызовом; в противном случае результаты неопределённы.
| Параметры значения |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Унаследовано от | SeqOps |
Source
Вычисляет длину самой длинной последовательности, начинающейся с определенного индекса, все элементы которой удовлетворяют заданному предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с индекса |
| Классы определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Source
Вычисляет длину самой длинной последовательности, начинающейся с первого элемента, все элементы которой удовлетворяют заданному предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с первого элемента, в которой каждый элемент удовлетворяет предикату |
| Унаследовано от | SeqOps |
Source
Размер этой последовательности.
Примечание: не завершится для коллекций бесконечного размера.
| Возвращает | количество элементов в этой последовательности. |
|---|---|
| Классы-определения | SeqOps -> IterableOnceOps |
| Унаследовано от | SeqOps |
Исходный код
Сравнивает размер этой последовательности с размером другой Iterable.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < that.size x == 0 if this.size == that.size x > 0 if this.size > that.size Реализация данного метода не вызывает |
| Классы-определения | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Исходный код
Сравнивает размер этой последовательности со значением-тестом.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < otherSize x == 0 if this.size == otherSize x > 0 if this.size > otherSize Метод, как реализован здесь, не вызывает |
| См. также | |
| Классы-определения | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Исходный код
final def sizeIs: SizeCompareOps
Возвращает экземпляр класса значений, содержащий операции для сравнения размера этой итерируемой коллекции со значением-тестом.
Эти операции реализованы с использованием sizeCompare(Int), и позволяют использовать более удобочитаемые выражения:
this.sizeIs < size // this.sizeCompare(size) < 0 this.sizeIs <= size // this.sizeCompare(size) <= 0 this.sizeIs == size // this.sizeCompare(size) == 0 this.sizeIs != size // this.sizeCompare(size) != 0 this.sizeIs >= size // this.sizeCompare(size) >= 0 this.sizeIs > size // this.sizeCompare(size) > 0
| Унаследовано от | IterableOps |
|---|
Исходный код
Выбирает интервал элементов. Возвращаемая итерируемая коллекция состоит из всех элементов x , которые удовлетворяют условию:
from <= indexOf(x) < until
Примечание: может возвращать разные результаты для разных запусков, если только тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемая коллекция, содержащая элементы, начиная с индекса |
| Унаследовано от | IterableOps |
Исходный код
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от разбиения, как это делается в grouped).
Возвращаемый итератор будет пустым, когда вызывается на пустой коллекции. Последний элемент, который возвращает итератор, может быть меньше размера окна, когда исходная коллекция не исчерпывается окном до его конца и его последний элемент не пропускается шагом до его конца.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые коллекции размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от их разделения, как это делается в grouped).
Пустая коллекция возвращает пустой итератор, а непустая коллекция, содержащая меньше элементов, чем размер окна, возвращает итератор, который выведет исходную коллекцию как единственный элемент.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые коллекции размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Сортирует эту последовательность в соответствии с упорядочением, полученным из преобразования неявного упорядочения с помощью функции преобразования.
Примечание: не завершится для бесконечных коллекций.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
Сортировка стабильная. То есть, элементы, которые равны (как определено ord.compare), отображаются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированной в соответствии с упорядочением, где |
| См. также | |
| Пример |
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с функцией сравнения.
Примечание: не завершится для бесконечных коллекций.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
Сортировка стабильная. То есть, элементы, которые равны (как определено lt ), отображаются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированной в соответствии с функцией сравнения |
| Пример |
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с упорядочением.
Сортировка стабильная. То есть, элементы, которые равны (как определено ord.compare ), отображаются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с порядком |
| См. также | scala.math.Ordering Примечание: даже при применении к представлению или ленивой коллекции она всегда заставляет элементы. |
| Унаследовано от | SeqOps |
Исходный код
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно), чем (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пара, состоящая из самого длинного префикса этой итерируемой коллекции, элементы которой удовлетворяют |
| Унаследовано от | IterableOps |
Исходный код
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно), чем (c take n, c drop n).
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пара итерируемых коллекций, состоящих из первых |
| Классы определений | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Исходный код
Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.
Примечание: Если и объект-получатель this, и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Исходный код
Возвращает scala.collection.Stepper для элементов этой коллекции.
Stepper позволяет создавать Java-поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.
Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этой коллекции.
Для коллекций
Int,Short,ByteилиChar, возвращается scala.collection.IntStepperДля коллекций
DoubleилиFloat, возвращается scala.collection.DoubleStepperДля коллекций
Long, возвращается scala.collection.LongStepperДля любого другого типа элементов возвращается scala.collection.AnyStepper
Обратите внимание, что этот метод переопределяется в подклассах, и тип возврата уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper могут быть преобразованы только в последовательные потоки.
| Унаследовано от | IterableOnce |
|---|
Исходный код
Суммирует элементы этой коллекции.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумма всех элементов этой коллекции относительно оператора |
| Унаследовано от | IterableOnceOps |
Исходный код
Итерируется по хвостам этой последовательности. Первое значение будет этой последовательностью, а последнее — пустой последовательностью, а промежуточные значения — результатами последовательных применений tail.
| Возвращает | итератор по всем хвостам этой последовательности |
|---|---|
| Пример |
|
| Классы определений | LinearSeqOps -> IterableOps |
| Унаследовано от | LinearSeqOps |
Исходный код
Выбирает последние n элементов.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемая коллекция, содержащая только последние |
| Унаследовано от | IterableOps |
Исходный код
Берет самый длинный префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | самый длинный префикс этой итерируемой коллекции, элементы которой удовлетворяют предикату |
| Унаследовано от | IterableOps |
Исходный код
override def tapEach[U](f: A => U): C
Применяет функцию с побочным эффектом к каждому элементу в этой коллекции. Строгие коллекции будут применять f к своим элементам немедленно, а ленивые коллекции, такие как представления и LazyList, будут применять f к каждому элементу только тогда, когда этот элемент будет вычислен, и каждый раз, когда этот элемент будет вычислен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Такая же логическая коллекция, как эта |
| Классы определений | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Source
При заданном фабричном методе коллекции factory, преобразуйте эту коллекцию в соответствующее представление для текущего типа элементов A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
| Унаследовано от | IterableOnceOps |
|---|
Source
Преобразует коллекцию в массив.
Примечание к реализации: НЕ вызывайте Array.from из этого метода.
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
def toIndexedSeq: IndexedSeq[A]
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Возвращает | Эту коллекцию как |
|---|---|
| Классы определений | Seq -> IterableOnceOps |
| Унаследовано от | Seq |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Транспонирует эту итерируемую коллекцию итерируемых коллекций в итерируемую коллекцию итерируемых коллекций.
Тип результирующей коллекции будет определяться статическим типом итерируемой коллекции. Например:
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))
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычислены.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | двухмерная итерируемая коллекция итерируемых коллекций, у которой n-я строка — это n-й столбец этой итерируемой коллекции. |
| Исключения |
|
| Унаследовано от | IterableOps |
Source
Попытка извлечь B из A в выражении сопоставления с образцом.
| Унаследовано от | PartialFunction |
|---|
Source
def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])
Преобразует эту итерируемую коллекцию пар в две коллекции первой и второй половины каждой пары.
val xs = Iterable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пара итерируемых коллекций, содержащая первую, соответственно вторую половину каждой пары элементов этой итерируемой коллекции. |
| Унаследовано от | IterableOps |
Source
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
Преобразует эту итерируемую коллекцию троек в три коллекции первого, второго и третьего элемента каждой тройки.
val xs = Iterable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three),
// Iterable(1, 2, 3))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | тройка итерируемых коллекций, содержащая первый, второй, соответственно третий член каждой тройки элементов этой итерируемой коллекции. |
| Унаследовано от | IterableOps |
Source
Копия этой последовательности с одним заменённым элементом.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, которая является копией этой последовательности с элементом в позиции |
| Исключения |
|
| Унаследовано от | SeqOps |
Source
Представление элементов этой коллекции.
| Классы определений | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Source
Возвращает итерируемую коллекцию, образованную из этой итерируемой коллекции и другой итерируемой коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций короче другой, плацехолдерные элементы используются для расширения более короткой коллекции до длины более длинной.
| Параметры значения |
|
|---|---|
| Возвращает | новый набор типа |
| Унаследовано от | IterableOps |
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/immutable/Stream.html