Spec-Zone.ru › Scala 2.13 Library

Трейт scala.collection.immutable.SeqOps

trait SeqOps[+A, +CC[_], +C] extends collection.SeqOps[A, CC, C]

Source
Seq.scala
Линейные супертипы
collection.SeqOps[A, CC, C], IterableOps[A, CC, C], IterableOnceOps[A, CC, C], IterableOnce[A], Any
Известные подклассы
::, AbstractSeq, ArraySeq, ofBoolean, ofByte, ofChar, ofDouble, ofFloat, ofInt, ofLong, ofRef, ofShort, ofUnit, IndexedSeq, IndexedSeqOps, LazyList, LinearSeq, LinearSeqOps, List, Nil, NumericRange, Exclusive, Inclusive, Queue, Range, Exclusive, Inclusive, Seq, Cons, Empty, StrictOptimizedSeqOps, Vector, WrappedString, Stream

Члены-значения абстрактного типа

abstract def apply(i: Int): A

Получение элемента по указанному индексу. Эта операция предоставляется для удобства в Seq. Не следует предполагать, что она эффективна, если у вас нет IndexedSeq.

Definition Classes
SeqOps
Annotations
@throws(scala.this.throws.<init>$default$1[IndexOutOfBoundsException])

abstract def coll: C

returns

Это коллекция в виде C.

Attributes
protected
Definition Classes
IterableOps

abstract def fromSpecific(coll: IterableOnce[A]): C

Определяет, как преобразовать заданную Iterable[A] в коллекцию типа C.

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

Attributes
protected
Definition Classes
IterableOps
Note

При реализации пользовательского типа коллекции и уточнении C до нового типа этот метод необходимо переопределить (иначе компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, добавив в класс трайт IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

,

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, если он вызывается с Iterable[A], полученной из this коллекции (как это происходит в реализациях операций, где мы используем View[A]), он безопасен.

abstract def getClass(): Class[_ <: AnyRef]

Возвращает представление класса объекта во время выполнения.

returns

объект класса, соответствующий типу получателя во время выполнения.

Definition Classes
Any

abstract def iterableFactory: IterableFactory[CC]

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

Definition Classes
IterableOps
Note

При реализации пользовательского типа коллекции и уточнении CC до нового типа этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (иначе компилятор выдаст ошибку).

abstract def iterator: Iterator[A]

Итератор может быть использован только один раз

Definition Classes
IterableOnce

abstract def length: Int

Длина (количество элементов) последовательности. size является псевдонимом для length в Seq коллекциях.

Definition Classes
SeqOps

abstract def newSpecificBuilder: Builder[A, C]

returns

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, View или immutable.LazyList), реализовать этот метод возможно, но полученный Builder нарушит ленивость. Вследствие этого операции предпочтительно реализовывать с fromSpecific вместо этого метода.

Attributes
protected
Definition Classes
IterableOps
Note

При реализации пользовательского типа коллекции и уточнении C до нового типа этот метод необходимо переопределить (иначе компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, добавив в класс трайт IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

,

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, если возвращаемый билдер заполняется только значениями A, взятыми из экземпляра this, он безопасен.

abstract def toIterable: collection.Iterable[A]

returns

Эта коллекция как Iterable[A]. Новый коллекция не будет создана, если this уже является Iterable[A].

Definition Classes
IterableOps

Члены-значения

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

возвращает

true если !(this == that), в противном случае false.

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

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает значение хеша, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хеша для каждого из них. Для null возвращает хешкод, где null.hashCode вызывает NullPointerException.

возвращает

значение хеша, согласованное с ==

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

def +(other: String): String

Неявный
Этот член добавлен с помощью неявного преобразования из SeqOps[A, CC, C] в any2stringadd[SeqOps[A, CC, C]] с помощью метода any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

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

Определяющие классы
IterableOps
Аннотации
@inline()

final def ++:[B >: A](prefix: IterableOnce[B]): CC[B]

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

Определяющие классы
SeqOps → IterableOps
Аннотации
@inline()

final def +:[B >: A](elem: B): CC[B]

Псевдоним для prepended. Обратите внимание, что операторы с суффиксом «-» ассоциативны справа (см. пример). Мемонический приём для +: и :+ заключается в том, что двоеточие относится к стороне коллекции.

Определяющие классы
SeqOps
Аннотации
@inline()

def ->[B](y: B): (SeqOps[A, CC, C], B)

Неявный
Этот член добавлен с помощью неявного преобразования из SeqOps[A, CC, C] в ArrowAssoc[SeqOps[A, CC, C]] с помощью метода ArrowAssoc в scala.Predef.
Определяющие классы
ArrowAssoc
Аннотации
@inline()

final def :+[B >: A](elem: B): CC[B]

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

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

Определяющие классы
SeqOps
Аннотации
@inline()

final def :++[B >: A](suffix: IterableOnce[B]): CC[B]

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

Definition Classes
SeqOps
Annotations
@inline()

final def ==(arg0: Any): Boolean

Тестирует два объекта на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

returns

true если объект-получатель эквивалентен аргументу; false в противном случае.

Definition Classes
Any

final def addString(b: mutable.StringBuilder): mutable.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
IterableOnceOps
Annotations
@inline()

final def addString(b: mutable.StringBuilder, sep: String): mutable.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
IterableOnceOps
Annotations
@inline()

def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.StringBuilder

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

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
b

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

start

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

sep

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

end

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

returns

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

Definition Classes
IterableOnceOps

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)
B

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

elem

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

returns

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

Definition Classes
SeqOps

def appendedAll[B >: A](suffix: IterableOnce[B]): CC[B]

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

B

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

suffix

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

returns

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

Definition Classes
SeqOps

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 collect[B](pf: PartialFunction[A, B]): CC[B]

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

B

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

pf

частичная функция, которая фильтрует и отображает итерируемую коллекцию.

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

pf

частичная функция

returns

значения типа Option, содержащее результат применения pf к первому значению, для которого она определена, или None в противном случае.

Definition Classes
IterableOnceOps
Пример:

    Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)

def combinations(n: Int): Iterator[C]

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

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

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

returns

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

Definition Classes
SeqOps
Пример:

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

final def concat[B >: A](suffix: IterableOnce[B]): CC[B]

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

B

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

suffix

перебираемый для добавления.

returns

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

Definition Classes
SeqOps → IterableOps
Annotations
@inline()

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

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

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

elem

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

returns

true если в этой последовательности есть элемент, равный (как определяется ==) elem, false в противном случае.

Definition Classes
SeqOps

def containsSlice[B](that: collection.Seq[B]): Boolean

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

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

that

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

returns

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

Definition Classes
SeqOps

def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int

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

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

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

B

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

xs

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

start

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

len

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

returns

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

Определяющие классы
IterableOnceOps
Примечание

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

def copyToArray[B >: A](xs: Array[B], start: Int): Int

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

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

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

B

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

xs

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

start

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

returns

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

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

def copyToArray[B >: A](xs: Array[B]): Int

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

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

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

B

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

xs

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

returns

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

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

def corresponds[B](that: collection.Seq[B])(p: (A, B) => Boolean): Boolean

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

B

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

that

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

p

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

returns

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

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

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

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

B

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

that

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

p

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

returns

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

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

def count(p: (A) => Boolean): Int

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

p

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

returns

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

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

def diff[B >: A](that: collection.Seq[B]): C

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

that

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

returns

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

Definition Classes
SeqOps

def distinct: C

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

returns

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

Definition Classes
SeqOps

def distinctBy[B](f: (A) => B): C

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

B

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

f

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

returns

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

Definition Classes
SeqOps

def drop(n: Int): C

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

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

n

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

def dropRight(n: Int): C

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

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

n

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

returns

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

Definition Classes
IterableOps

def dropWhile(p: (A) => Boolean): C

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

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

p

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

def empty: C

Пустой итерируемый набор того же типа, что и этот итерируемый набор

returns

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

Definition Classes
IterableOps

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

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

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

that

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

returns

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

Definition Classes
SeqOps

def ensuring(cond: (SeqOps[A, CC, C]) => Boolean, msg: => Any): SeqOps[A, CC, C]

Implicit
Этот член добавляется неявным преобразованием из SeqOps[A, CC, C] в Ensuring[SeqOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: (SeqOps[A, CC, C]) => Boolean): SeqOps[A, CC, C]

Implicit
Этот член добавляется неявным преобразованием из SeqOps[A, CC, C] в Ensuring[SeqOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean, msg: => Any): SeqOps[A, CC, C]

Implicit
Этот член добавляется неявным преобразованием из SeqOps[A, CC, C] в Ensuring[SeqOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean): SeqOps[A, CC, C]

Implicit
Этот член добавляется неявным преобразованием из SeqOps[A, CC, C] в Ensuring[SeqOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def equals(arg0: Any): Boolean

Сравнивает объект-получатель (this) с объектом-аргументом (that) на предмет эквивалентности.

Любая реализация этого метода должна быть отношением эквивалентности:

    Она рефлексивна: для любого экземпляра x типа Any, x.equals(x) должен возвращать true.Она симметрична: для любых экземпляров x и y типа Any, x.equals(y) должен возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Она транзитивна: для любых экземпляров x, y, и z типа Any, если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должен возвращать true.

Если вы переопределяете этот метод, вы должны убедиться, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode, чтобы гарантировать, что объекты, которые являются "равными" (o1.equals(o2) возвращает true) имеют одинаковый хэш-код scala.Int. (o1.hashCode.equals(o2.hashCode)).

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

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

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

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

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

p

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

возвращает

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

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

def filter(pred: (A) => Boolean): C

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def filterNot(pred: (A) => Boolean): C

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

pred

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def find(p: (A) => Boolean): Option[A]

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

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

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

p

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

returns

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

Definition Classes
IterableOnceOps

def findLast(p: (A) => Boolean): Option[A]

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

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

p

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

returns

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

Definition Classes
SeqOps

def flatMap[B](f: (A) => IterableOnce[B]): CC[B]

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

Например:

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)
B

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

f

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

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)
B

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

asIterable

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

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

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

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

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

A1

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

z

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

op

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

returns

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

Definition Classes
IterableOnceOps

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

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

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

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

B

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

z

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

op

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

returns

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

op(...op(z, x_1), x_2, ..., x_n)

где x1, ..., xn - элементы этого набора. Возвращает z , если этот набор пуст.

Definition Classes
IterableOnceOps

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

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

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

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

B

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

z

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

op

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

returns

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

op(x_1, op(x_2, ... op(x_n, z)...))

где x1, ..., xn - элементы этого набора. Возвращает z , если этот набор пуст.

Definition Classes
IterableOnceOps

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

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

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

p

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

returns

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

Definition Classes
IterableOnceOps

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

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

Definition Classes
IterableOnceOps

def formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с данной format строкой. Форматные строки аналогичны String.format (см. java.lang.String.format).

Implicit
Этот член добавляется неявным преобразованием из SeqOps[A, CC, C] вStringFormat[SeqOps[A, CC, C]] при помощи метода StringFormat в scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()

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

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

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

K

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

f

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

returns

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

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

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

Definition Classes
IterableOps

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

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

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

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

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

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

K

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

B

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

key

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

f

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

Definition Classes
IterableOps

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

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

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

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

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

Definition Classes
IterableOps

def grouped(size: Int): Iterator[C]

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

size

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

returns

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

Definition Classes
IterableOps
См. также

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

def hashCode(): Int

Вычисляет значение хэш-кода для объекта.

Алгоритм хэширования по умолчанию зависит от платформы.

Обратите внимание, что для двух объектов могут быть одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но они могут не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация могла бы всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), то у них одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому, при переопределении этого метода, обязательно убедитесь, что поведение согласуется с методом equals.

returns

значение хэш-кода для этого объекта.

Definition Classes
Any

def head: A

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

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

returns

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

Definition Classes
IterableOps
Исключения

NoSuchElementException, если итерируемая коллекция пуста.

def headOption: Option[A]

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

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

returns

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

Definition Classes
IterableOps

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

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

B

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

elem

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

returns

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

Definition Classes
SeqOps
Аннотации
@deprecatedOverriding("Override indexOf(elem, from) instead - indexOf(elem) calls indexOf(elem, 0)", "2.13.0")

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

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

B

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

elem

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

from

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

returns

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

Definition Classes
SeqOps

def indexOfSlice[B >: A](that: collection.Seq[B]): Int

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

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

that

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

returns

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

Definition Classes
SeqOps
Annotations
@deprecatedOverriding("Override indexOfSlice(that, from) вместо этого - indexOfSlice(that) вызывает indexOfSlice(that, 0)", "2.13.0")

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

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

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

that

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

from

стартовый индекс

returns

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

Definition Classes
SeqOps

def indexWhere(p: (A) => Boolean): Int

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

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

p

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

returns

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

Definition Classes
SeqOps
Annotations
@deprecatedOverriding("Override indexWhere(p, from) вместо этого - indexWhere(p) вызывает indexWhere(p, 0)", "2.13.0")

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

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

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

p

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

from

стартовый индекс

returns

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

Definition Classes
SeqOps

def indices: Range

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

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

returns

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

Definition Classes
SeqOps

def init: C

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

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

Definition Classes
IterableOps

def inits: Iterator[C]

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

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

returns

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

Definition Classes
IterableOps
Пример:

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

def intersect[B >: A](that: collection.Seq[B]): C

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

that

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

returns

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

Definition Classes
SeqOps

def isDefinedAt(idx: Int): Boolean

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

Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].

idx

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

returns

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

Definition Classes
SeqOps

def isEmpty: Boolean

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

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

returns

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

Definition Classes
SeqOps → IterableOnceOps

final def isInstanceOf[T0]: Boolean

Проверка, является ли динамический тип объекта-приёмника T0.

Обратите внимание, что результат теста зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, содержатся ли элементы списка указанного типа.

returns

true если объект-приёмник является экземпляром стирания типа T0; false в противном случае.

Definition Classes
Any

def isTraversableAgain: Boolean

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def knownSize: Int

returns

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

Definition Classes
IterableOnce

def last: A

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

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

returns

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

Definition Classes
IterableOps
Exceptions thrown

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

def lastIndexOf[B >: A](elem: B, end: Int = length - 1): Int

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

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

B

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

elem

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

end

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

returns

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

Definition Classes
SeqOps

def lastIndexOfSlice[B >: A](that: collection.Seq[B]): Int

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

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

that

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

returns

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

Definition Classes
SeqOps
Annotations
@deprecatedOverriding("Override lastIndexOfSlice(that, end) instead - lastIndexOfSlice(that) calls lastIndexOfSlice(that, Int.MaxValue)", "2.13.0")

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

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

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

that

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

end

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

returns

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

Definition Classes
SeqOps

def lastIndexWhere(p: (A) => Boolean): Int

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

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

p

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

returns

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

Definition Classes
SeqOps
Annotations
@deprecatedOverriding("Override lastIndexWhere(p, end) instead - lastIndexWhere(p) calls lastIndexWhere(p, Int.MaxValue)", "2.13.0")

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

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

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

p

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

returns

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

Definition Classes
SeqOps

def lastOption: Option[A]

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

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

returns

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

Definition Classes
IterableOps

def lengthCompare(that: collection.Iterable[_]): Int

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

that

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

returns

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

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

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

Definition Classes
SeqOps

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 является быстрым и knownSize возвращает -1.

Definition Classes
SeqOps
See also

lengthIs

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
Definition Classes
SeqOps
Annotations
@inline()

def map[B](f: (A) => B): CC[B]

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

B

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

f

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

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

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

B

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

ord

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

returns

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

Definition Classes
IterableOnceOps
Exceptions thrown

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

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

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

B

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

f

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

cmp

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

returns

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

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

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

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

B

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

f

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

cmp

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

returns

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

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

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

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

B

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

ord

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

returns

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

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

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

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

B

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

ord

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

returns

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

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

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

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

B

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

f

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

cmp

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

returns

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

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

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

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

B

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

f

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

cmp

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

returns

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

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

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

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

B

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

ord

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

returns

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

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

final def mkString: String

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

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

returns

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

Definition Classes
IterableOnceOps
Annotations
@inline()

final def mkString(sep: String): String

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

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

sep

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

returns

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

Definition Classes
IterableOnceOps
Annotations
@inline()
Пример:

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

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

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

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

start

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

sep

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

end

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

returns

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

Definition Classes
IterableOnceOps
Пример:

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

def nonEmpty: Boolean

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

returns

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

Definition Classes
IterableOnceOps
Annotations
@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")

def occCounts[B](sq: collection.Seq[B]): mutable.Map[B, Int]

Attributes
protected[scala.collection]
Definition Classes
SeqOps

def padTo[B >: A](len: Int, elem: B): CC[B]

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

B

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

len

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

elem

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

returns

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

Definition Classes
SeqOps

def partition(p: (A) => Boolean): (C, C)

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

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

Definition Classes
IterableOps

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))
A1

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

A2

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

f

функция 'разделения', которая отображает элементы этого итерируемого набора в scala.util.Either

returns

пара итерируемых наборов: первый набор состоит из значений, возвращённых f, которые были обернуты в scala.util.Left, а второй набор состоит из значений, обернутых в scala.util.Right.

Definition Classes
IterableOps

def patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int): CC[B]

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

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

B

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

from

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

other

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

replaced

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

returns

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

Definition Classes
SeqOps

def permutations: Iterator[C]

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

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

returns

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

Definition Classes
SeqOps
Пример:

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

def prepended[B >: A](elem: B): CC[B]

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

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

Пример:

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)
B

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

elem

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

returns

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

Definition Classes
SeqOps

def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]

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

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

B

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

prefix

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

returns

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

Definition Classes
SeqOps

def product[B >: A](implicit num: math.Numeric[B]): B

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

B

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

num

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

returns

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

Definition Classes
IterableOnceOps

def reduce[B >: A](op: (B, B) => B): B

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

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

B

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

op

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

returns

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

Definition Classes
IterableOnceOps
Exceptions thrown

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

def reduceLeft[B >: A](op: (B, A) => B): B

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

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

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

B

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

op

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

returns

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

op( op( ... op(x_1, x_2) ..., x_{n-1}), x_n)

где x1, ..., xn являются элементами этой коллекции.

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

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

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

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

B

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

op

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

returns

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

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

def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

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

B

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

op

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

returns

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

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

def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

B

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

op

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

returns

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

op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))

где x1, ..., xn являются элементами этой коллекции.

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

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

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

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

B

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

op

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

returns

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

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

def reverse: C

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

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

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

returns

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

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

def reverseIterator: Iterator[A]

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

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

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

returns

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

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

def reversed: collection.Iterable[A]

Атрибуты
protected
Классы-определения
IterableOnceOps

def sameElements[B >: A](that: IterableOnce[B]): Boolean

Являются ли элементы этой коллекции такими же (и в том же порядке), как элементы that?

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

def scan[B >: A](z: B)(op: (B, B) => B): CC[B]

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

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

B

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

z

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

op

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

возвращает

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

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

def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

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

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

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

B

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

z

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

op

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

возвращает

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

Классы-определения
IterableOps → IterableOnceOps
Примечание

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

def scanRight[B](z: B)(op: (A, B) => B): CC[B]

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
B

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

z

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

op

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

возвращает

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

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

def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

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

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

elem

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

from

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

to

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

ord

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

возвращает

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

Классы-определения
SeqOps
Примечание

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

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

def search[B >: A](elem: B)(implicit ord: Ordering[B]): SearchResult

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

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

elem

элемент, который нужно найти.

ord

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

returns

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

Definition Classes
SeqOps
See also

scala.collection.IndexedSeq

scala.math.Ordering

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

def segmentLength(p: (A) => Boolean, from: Int): Int

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

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

p

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

from

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

returns

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

Definition Classes
SeqOps

final def segmentLength(p: (A) => Boolean): Int

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

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

p

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

returns

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

Definition Classes
SeqOps

final def size: Int

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

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

returns

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

Definition Classes
SeqOps → IterableOnceOps

final def sizeCompare(that: collection.Iterable[_]): Int

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

that

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

returns

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

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

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

Definition Classes
SeqOps → IterableOps

final def sizeCompare(otherSize: Int): Int

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

otherSize

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

returns

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

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

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

Definition Classes
SeqOps → IterableOps
See also

sizeIs

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
Definition Classes
IterableOps
Annotations
@inline()

def slice(from: Int, until: Int): C

Выбирает интервал элементов. Возвращаемая итерируемая коллекция состоит из всех элементов x, которые удовлетворяют инварианту:

from <= indexOf(x) < until

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

from

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

until

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

returns

итерируемая коллекция, содержащая элементы, большие или равные индексу from, и до (но не включая) индекса until этой итерируемой коллекции.

Definition Classes
IterableOps → IterableOnceOps
Note

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

def sliding(size: Int, step: Int): Iterator[C]

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

size

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

step

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

returns

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

Definition Classes
IterableOps
See also

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

def sliding(size: Int): Iterator[C]

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

size

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

returns

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

Definition Classes
IterableOps
See also

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

def sortBy[B](f: (A) => B)(implicit ord: Ordering[B]): C

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

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

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

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

B

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

f

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

ord

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

returns

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

Definition Classes
SeqOps
Пример:
    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)
See also

scala.math.Ordering

def sortWith(lt: (A, A) => Boolean): C

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

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

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

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

lt

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

returns

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

Definition Classes
SeqOps
Пример:
    List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
    List("Bob", "John", "Steve", "Tom")

def sorted[B >: A](implicit ord: Ordering[B]): C

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

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

ord

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

returns

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

Definition Classes
SeqOps
See also

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

def span(p: (A) => Boolean): (C, C)

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

Примечание: c span p эквивалентно (но, возможно, более эффективно), чем (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не приводит к побочным эффектам.

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

p

предикат проверки

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

def splitAt(n: Int): (C, C)

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

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

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

n

позиция, в которой нужно разделить.

возвращает

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

Классы определения
IterableOps → IterableOnceOps
Примечание

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

def startsWith[B >: A](that: IterableOnce[B], offset: Int = 0): Boolean

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

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

that

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

offset

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

возвращает

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

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

def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает Stepper для элементов этой коллекции.

Stepper позволяет создавать Java-поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.

Неявный параметр StepperShape определяет тип возвращаемого Stepper в соответствии с типом элемента этой коллекции.

    Для коллекций Int, Short, Byte или Char возвращается IntStepperДля коллекций Double или Float возвращается DoubleStepperДля коллекций Long возвращается LongStepperДля любого другого типа элемента возвращается AnyStepper

Обратите внимание, что этот метод переопределяется в подклассах, а тип возвращаемого значения уточняется до S with EfficientSplit, например, IndexedSeqOps.stepper. Для Steppers, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Steppers могут преобразовываться только в последовательные потоки.

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

def sum[B >: A](implicit num: math.Numeric[B]): B

Суммирует элементы этой коллекции.

B

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

num

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

возвращает

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

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

def tail: C

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

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

def tails: Iterator[C]

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

возвращает

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

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

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

def take(n: Int): C

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

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

n

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

возвращает

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

Классы определения
IterableOps → IterableOnceOps
Примечание

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

def takeRight(n: Int): C

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

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

n

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

returns

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

Definition Classes
IterableOps

def takeWhile(p: (A) => Boolean): C

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

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

p

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def tapEach[U](f: (A) => U): C

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

U

тип возвращаемого значения f

f

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

returns

Такая же логическая коллекция, как эта

Definition Classes
IterableOps → IterableOnceOps

def to[C1](factory: Factory[A, C1]): C1

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

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

Definition Classes
IterableOnceOps

def toArray[B >: A](implicit arg0: ClassTag[B]): Array[B]

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

Definition Classes
IterableOnceOps

final def toBuffer[B >: A]: Buffer[B]

Definition Classes
IterableOnceOps
Annotations
@inline()

def toIndexedSeq: IndexedSeq[A]

Definition Classes
IterableOnceOps

def toList: List[A]

Definition Classes
IterableOnceOps

def toMap[K, V](implicit ev: <:<[A, (K, V)]): Map[K, V]

Definition Classes
IterableOnceOps

def toSeq: Seq[A]

returns

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

Definition Classes
IterableOnceOps

def toSet[B >: A]: Set[B]

Definition Classes
IterableOnceOps

def toString(): String

Возвращает строковое представление объекта.

По умолчанию представление зависит от платформы.

returns

строковое представление объекта.

Definition Classes
Any

def toVector: Vector[A]

Definition Classes
IterableOnceOps

def transpose[B](implicit asIterable: (A) => collection.Iterable[B]): CC[CC[B]]

Транспонирует это итерируемое множество итерируемых множеств в итерируемое множество итерируемых множеств.

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

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

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

B

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

asIterable

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

returns

двумерное итерируемое множество итерируемых множеств, у которого n-я строка соответствует n-му столбцу этого итерируемого множества.

Definition Classes
IterableOps
Exceptions thrown

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

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))
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

asPair

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

returns

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

Definition Classes
IterableOps

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))
A1

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

A2

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

A3

тип третьего члена троек элементов

asTriple

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

returns

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

Definition Classes
IterableOps

def updated[B >: A](index: Int, elem: B): CC[B]

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

B

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

index

позиция замены

elem

элемент замены

returns

новая последовательность, являющаяся копией этой последовательности с элементом на позиции index заменённым на elem.

Definition Classes
SeqOps
Exceptions thrown

IndexOutOfBoundsException, если index не удовлетворяет 0 <= index < length. В случае ленивого множества это исключение может быть брошено позже или вообще не брошено (если конец множества никогда не вычисляется).

def view: SeqView[A]

Представление элементов этого множества.

Definition Classes
SeqOps → IterableOps

def withFilter(p: (A) => Boolean): WithFilter[A, CC]

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

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

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

p

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

returns

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

Definition Classes
IterableOps

def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

B

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

that

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

returns

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

Definition Classes
IterableOps

def zipAll[A1 >: A, B](that: collection.Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

that

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

thisElem

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

thatElem

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

returns

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

Definition Classes
IterableOps

def zipWithIndex: CC[(A, Int)]

Объединяет эту итерируемую коллекцию с её индексами.

returns

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

Definition Classes
IterableOps → IterableOnceOps
Пример:

    List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Note

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

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/collection/immutable/SeqOps.html

Spec-Zone.ru

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