Spec-Zone.ru › Scala 3.2

Трейт Seq.Seq

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

trait Seq[+A] extends Iterable[A] with Seq[A] with SeqOps[A, Seq, Seq[A]] with IterableFactoryDefaults[A, Seq]

Суператрибуты
trait SeqOps[A, Seq, Seq[A]]
trait Seq[A]
trait Equals
trait SeqOps[A, Seq, Seq[A]]
trait PartialFunction[Int, A]
trait Int => A
trait Iterable[A]
trait Iterable[A]
trait IterableFactoryDefaults[A, Seq]
trait IterableOps[A, Seq, Seq[A]]
trait IterableOnceOps[A, Seq, Seq[A]]
trait IterableOnce[A]
class Object
trait Matchable
class Any
Известные подтипы
30 типов
class AbstractSeq[A]
class ArraySeq[A]
class ofBoolean
class ofByte
class ofChar
class ofDouble
class ofFloat
class ofInt
class ofLong
class ofRef[T]
class ofShort
class ofUnit
class LazyList[A]
class List[A]
class ::[A]
object Nil.type
class NumericRange[T]
class Exclusive[T]
class Inclusive[T]
class Queue[A]
class Range
class Exclusive
class Inclusive
class Stream[A]
class Cons[A]
object Empty.type
class Vector[A]
class WrappedString
trait IndexedSeq[A]
trait LinearSeq[A]

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

Исходный код
override def iterableFactory: SeqFactory[Seq]

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

Примечание

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

Определения классов Seq -> Iterable -> Iterable -> IterableOps

Исходный код
final override def toSeq: Seq.this.type

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Source
final def addString(b: StringBuilder): StringBuilder

Добавляет все элементы этой коллекции в строковый буфер. Записываемый текст состоит из строковых представлений (относительно метода toString) всех элементов этой коллекции без разделительной строки.

Пример:

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

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

scala> val h = a.addString(b)
h: StringBuilder = 1234
Параметры значения
b

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

Возвращает

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

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

Source
final def addString(b: StringBuilder, sep: String): StringBuilder

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

Пример:

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

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

scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
Параметры значения
b

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

sep

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

Возвращает

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

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

Source
def addString(b: StringBuilder, start: String, sep: String, end: String): 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

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

end

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

sep

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

start

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Классы определения 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)
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def apply(i: Int): A

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

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

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

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

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

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

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

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

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

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

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

x

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

Возвращает

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

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

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

Метод, который должен вызываться из каждой хорошо спроектированной функции equals, которая может быть переопределена в подклассе. См. Programming in Scala, Глава 28 для обсуждения и проектирования.

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

значение, проверяемое на возможное равенство

Возвращает

true, если этот экземпляр потенциально может быть равен that, в противном случае false

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

Источник
def collect[B](pf: PartialFunction[A, B]): CC[B]

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

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

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

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

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

Возвращает

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

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

Источник
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

функция A => T1

Возвращает

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

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

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

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

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

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

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

объект итерируемый, который необходимо добавить.

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

максимальное количество копируемых элементов.

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

that

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

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

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

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

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

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

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

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

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

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

that

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник
def distinct: C

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def drop(n: Int): C

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

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

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

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

Возвращает

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

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

Исходный код
def dropRight(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Source
override def equals(o: Any): Boolean

Универсальный метод равенства, определённый в AnyRef.

Definition Classes Seq -> Equals -> Any
Inherited from Seq

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

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOnceOps

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOps

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

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

Value parameters
pred

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

Returns

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

Inherited from IterableOps

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

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

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOnceOps

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

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

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

Value parameters
p

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

Returns

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

Inherited from SeqOps

Source
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

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

Возвращает

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

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

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

Возвращает

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

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

Исходный код
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

Источник
def groupBy[K](f: A => K): Map[K, C]

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

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

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

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

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

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

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

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

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

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

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

Источник
def groupMap[K, B](key: A => K)(f: A => B): Map[K, 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)

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

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

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

K

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

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

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

key

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

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

Исходный код
def grouped(size: Int): Iterator[C]

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

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

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

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

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

См. также

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

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

Исходный код
override def hashCode(): Int

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

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

Обратите внимание, что для двух объектов могут быть идентичны хэш-коды (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

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

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

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

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

Исключения
NoSuchElementException

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

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

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

Возвращает необязательный первый элемент.

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

from

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

p

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

Возвращает

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

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

Source
def indices: Range

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

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

Возвращает

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

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

Source
def init: C

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

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

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

Source
def inits: Iterator[C]

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

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

Возвращает

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

Пример

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

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

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

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

Параметры
that

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

Возвращает

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

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

Source
def isDefinedAt(idx: Int): Boolean

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

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

Параметры
idx

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

Возвращает

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

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

Source
override def isEmpty: Boolean

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

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

Возвращает

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

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

Source
override def isTraversableAgain: Boolean

Проверяет, можно ли многократно пройтись по этой итерируемой коллекции. Всегда true для Iterable и false для Iterator, если не переопределено.

Возвращает

true, если можно многократно пройтись, false — в противном случае.

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

Source
def iterator: Iterator[A]

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

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

Source
def knownSize: Int

Возвращает

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

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

Source
def last: A

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

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

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

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

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

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

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

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

end

конечный индекс.

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

конечный индекс

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def lastOption: Option[A]

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

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

Возвращает

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

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

Источник
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

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

Вызовы lazyZip могут быть объединены для поддержки более высоких арностей (до 4) без затрат на построение и деконструирование промежуточных кортежей.

val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

Значение 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.

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

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

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

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

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

Возвращает

Значение 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.

См. также

lengthIs

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

Источник
final def lengthIs: SizeCompareOps

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

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

this.lengthIs < len     // this.lengthCompare(len) < 0
this.lengthIs <= len    // this.lengthCompare(len) <= 0
this.lengthIs == len    // this.lengthCompare(len) == 0
this.lengthIs != len    // this.lengthCompare(len) != 0
this.lengthIs >= len    // this.lengthCompare(len) >= 0
this.lengthIs > len     // this.lengthCompare(len) > 0
Унаследовано от SeqOps

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

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

Возвращает

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

См. также

Function.unlift

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Source
final def mkString: String

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

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

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

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

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

Source
final def mkString(sep: String): String

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

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

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

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

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

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

Пример

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

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

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

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

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

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

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

sep

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

start

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

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

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

Пример

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

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

Source
protected def newSpecificBuilder: Builder[A, CC[A]]

Возвращает

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

Примечание

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

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

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

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

Проверяет, является ли коллекция непустой.

Возвращает

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

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

Исходный код
def orElse[A1 <: Int, B1 >: A](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

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

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

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

B1

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

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

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

Возвращает

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

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

Исходный код
def padTo[B >: A](len: Int, elem: B): CC[B]

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

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

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

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

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

len

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

Возвращает

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

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

Исходный код
def partition(p: A => Boolean): (C, C)

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

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

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

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

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

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

Исходный код
def patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int): CC[B]

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

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

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

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

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

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

other

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

replaced

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

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

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

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

Исходный код
def permutations: Iterator[C]

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

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

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

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

Пример

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

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

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

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

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

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

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

Исходный код
def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]

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

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

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

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

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

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

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

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

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

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

Перемножает элементы этой коллекции.

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def reverse: C

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

См. также

applyOrElse.

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

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

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

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

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

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

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

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

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

Параметры значения
op

ассоциативный оператор для сканирования

z

нейтральный элемент для оператора op

Возвращает

новая итерируемая коллекция, содержащая префиксное сканирование элементов в этой итерируемой коллекции

Унаследовано от IterableOps

Источник
def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

Создаёт итерируемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.

Примечание: не будет завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры типа
B

тип элементов в результирующей коллекции

Параметры значения
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

коллекция с промежуточными результатами

Унаследовано от IterableOps

Источник
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

тип элементов в результирующей коллекции

Параметры значения
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

коллекция с промежуточными результатами

Унаследовано от IterableOps

Источник
def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

Поиск в заданном интервале в этом отсортированном последовательности определённого элемента. Если эта последовательность является IndexedSeq, используется двоичный поиск. В противном случае используется линейный поиск.

Последовательность должна быть отсортирована с помощью того же Ordering перед вызовом; в противном случае результаты будут неопределёнными.

Параметры значения
elem

элемент для поиска.

from

индекс, с которого начинается поиск.

ord

упорядочение, используемое для сравнения элементов.

to

индекс, следующий за тем, где заканчивается поиск.

Возвращает

значение Found, содержащее индекс, соответствующий элементу в последовательности, или InsertionPoint, где элемент был бы вставлен, если элемент не находится в последовательности.

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Примечание

если to <= from, пространство поиска пусто, и возвращается InsertionPoint в from

Унаследовано от SeqOps

Исходный код
def search[B >: A](elem: B)(implicit ord: Ordering[B]): SearchResult

Ищет этот отсортированный последовательность для определенного элемента. Если последовательность является IndexedSeq, используется двоичный поиск. В противном случае используется линейный поиск.

Последовательность должна быть отсортирована с использованием того же Ordering перед вызовом; в противном случае результаты не определены.

Параметры значения
elem

элемент для поиска.

ord

упорядочение, используемое для сравнения элементов.

Возвращает

значение Found, содержащее индекс, соответствующий элементу в последовательности, или InsertionPoint, где элемент был бы вставлен, если элемент не находится в последовательности.

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Унаследовано от SeqOps

Исходный код
def segmentLength(p: A => Boolean, from: Int): Int

Вычисляет длину самой длинной последовательности, которая начинается с некоторого индекса и члены которой удовлетворяют некоторому предикату.

Примечание: может не завершиться для бесконечных коллекций.

Параметры значения
from

индекс, с которого начинается поиск.

p

предикат, используемый для проверки элементов.

Возвращает

длину самой длинной последовательности этой последовательности, начинающейся с индекса from, такой, что каждый элемент последовательности удовлетворяет предикату p

Унаследовано от SeqOps

Исходный код
final def segmentLength(p: A => Boolean): Int

Вычисляет длину самой длинной последовательности, которая начинается с первого элемента и члены которой удовлетворяют некоторому предикату.

Примечание: может не завершиться для бесконечных коллекций.

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

длину самой длинной последовательности этой последовательности, начинающейся с первого элемента, такая, что каждый элемент последовательности удовлетворяет предикату p

Унаследовано от SeqOps

Исходный код
final override def size: Int

Размер этой последовательности.

Примечание: не завершится для бесконечных коллекций.

Возвращает

количество элементов в этой последовательности.

Определяющие классы SeqOps -> IterableOnceOps
Унаследовано от SeqOps

Исходный код
final override def sizeCompare(that: Iterable[_]): Int

Сравнивает размер этой последовательности с размером другой Iterable.

Параметры значения
that

the Iterable whose size is compared with this sequence's size.

Возвращает

Значение 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.

Определяющие классы SeqOps -> IterableOps
Унаследовано от SeqOps

Исходный код
final override def sizeCompare(otherSize: Int): Int

Сравнивает размер этой последовательности со значением проверки.

Параметры значения
otherSize

значение проверки, которое сравнивается с размером.

Возвращает

Значение 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.

См. также

sizeIs

Определяющие классы 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

Исходный код
def slice(from: Int, until: Int): C

Выбирает интервал элементов. Полученная итерируемая коллекция состоит из всех элементов x которые удовлетворяют инварианту:

from <= indexOf(x) < until

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
from

наименьший индекс для включения из этой итерируемой коллекции.

until

наименьший индекс для исключения из этой итерируемой коллекции.

Возвращает

итерируемую коллекцию, содержащую элементы, большие или равные индексу from и продолжающуюся до (но не включая) индекс until этой итерируемой коллекции.

Унаследовано от IterableOps

Исходный код
def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от их разбиения, как это делается в grouped.)

Возвращаемый итератор будет пустым, когда вызывается на пустой коллекции. Последний элемент, который производит итератор, может быть меньше размера окна, когда исходная коллекция не исчерпана окном перед ним и последний элемент не пропускается шагом перед ним.

Параметры значения
size

количество элементов в группе

step

расстояние между начальными элементами последовательных групп

Возвращает

Итератор, производящий итерируемые коллекции размера size, за исключением последнего элемента (который может быть единственным элементом), который будет меньше, если оставшихся элементов для группировки меньше, чем size.

См. также

scala.collection.Iterator, метод sliding

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

Унаследовано от IterableOps

Source
def sliding(size: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от разбиения, как это делается в grouped).

Пустой коллекцией возвращается пустой итератор, а непустая коллекция, содержащая меньше элементов, чем размер окна, возвращает итератор, который произведёт исходную коллекцию как единственный элемент.

Параметры значения
size

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые коллекции размером size, за исключением непустой коллекции с менее чем size элементами, которая возвращает итератор, генерирующий исходную коллекцию в качестве единственного элемента.

См. также

scala.collection.Iterator, метод sliding

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

Унаследовано от IterableOps

Source
def sortBy[B](f: A => B)(implicit ord: Ordering[B]): C

Сортирует эту последовательность согласно Порядку, полученному из неявно заданного порядка с помощью функции преобразования.

Примечание: не завершится для коллекций бесконечного размера.

Примечание: Даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.

Сортировка устойчива. То есть элементы, которые равны (как определяется ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры типа
B

целевой тип преобразования f, и тип, где определён порядок ord.

Параметры значения
f

функция преобразования, сопоставляющая элементы с какой-либо другой областью B.

ord

порядок, предполагаемый для области B.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных согласно порядку, где x < y если ord.lt(f(x), f(y)).

См. также

scala.math.Ordering

Пример
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
Унаследовано от SeqOps

Source
def sortWith(lt: (A, A) => Boolean): C

Сортирует эту последовательность согласно функции сравнения.

Примечание: не завершится для коллекций бесконечного размера.

Примечание: Даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.

Сортировка устойчива. То есть элементы, которые равны (как определяется lt), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры значения
lt

функция сравнения, которая проверяет, предшествует ли первый аргумент второму аргументу в желаемом порядке.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных согласно функции сравнения lt.

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследовано от SeqOps

Source
def sorted[B >: A](implicit ord: Ordering[B]): C

Сортирует эту последовательность согласно порядку.

Сортировка устойчива. То есть элементы, которые равны (как определяется ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры значения
ord

порядок, используемый для сравнения элементов.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных согласно порядку ord.

См. также

scala.math.Ordering Примечание: Даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.

Унаследовано от SeqOps

Source
def span(p: A => Boolean): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

Примечание: может возвращать разные результаты для разных запусков, если только тип базовой коллекции не упорядочен.

Параметры значения
p

предикат проверки

Возвращает

пара, состоящая из самого длинного префикса этой итерируемой коллекции, элементы которой удовлетворяют p, и оставшейся части этой итерируемой коллекции.

Унаследовано от IterableOps

Source
override def splitAt(n: Int): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

Примечание: может возвращать разные результаты для разных запусков, если только тип базовой коллекции не упорядочен.

Параметры значения
n

позиция, в которой необходимо произвести разделение.

Возвращает

пара итерируемых коллекций, состоящая из первых n элементов этой итерируемой коллекции и остальных элементов.

Классы определений IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Source
def startsWith[B >: A](that: IterableOnce[B], offset: Int): Boolean

Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.

Примечание: Если и получаемый объект this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.

Параметры значения
offset

индекс, в котором выполняется поиск последовательности.

that

последовательность для проверки

Возвращает

true если последовательность that содержится в этой последовательности в индексе offset, в противном случае false.

Унаследовано от SeqOps

Source
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает scala.collection.Stepper для элементов этой коллекции.

Stepper позволяет создавать поток Java для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper можно использовать как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этой коллекции.

  • Для коллекций Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для коллекций Double или Float, возвращается scala.collection.DoubleStepper

  • Для коллекций Long возвращается scala.collection.LongStepper

  • Для любого другого типа элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределен в дочерних классах, и тип возвращаемого значения уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper можно преобразовать только в последовательные потоки.

Унаследовано от IterableOnce

Source
def sum[B >: A](implicit num: Numeric[B]): B

Суммирует элементы этого набора.

Примечание: не завершится для коллекций бесконечного размера.

Параметры типа
B

тип результата оператора +.

Параметры значения
num

неявный параметр, определяющий набор арифметических операций, включающий оператор +, который используется для вычисления суммы.

Возвращает

сумма всех элементов этой коллекции по отношению к оператору + в num.

Унаследовано от IterableOnceOps

Source
def tail: C

Остальная часть коллекции без первого элемента.

Унаследовано от IterableOps

Source
def tails: Iterator[C]

Итерирует по хвостам этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результаты последовательных применений tail.

Возвращает

итератор по всем хвостам этой итерируемой коллекции

Пример

List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)

Унаследовано от IterableOps

Source
def take(n: Int): C

Выбирает первые n элементов.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
n

количество элементов, которые нужно взять из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, содержащая только первые n элементов этой итерируемой коллекции, или вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательное, возвращается пустая итерируемая коллекция.

Унаследовано от IterableOps

Source
def takeRight(n: Int): C

Выбирает последние n элементов.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
n

количество элементов, которые нужно взять из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, содержащая только последние n элементов этой итерируемой коллекции, или вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательное, возвращается пустая итерируемая коллекция.

Унаследовано от IterableOps

Source
def takeWhile(p: A => Boolean): C

Возвращает наибольший префикс элементов, удовлетворяющих предикату.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
p

Предикат, используемый для проверки элементов.

Возвращает

наибольший префикс этой итерируемой коллекции, элементы которого удовлетворяют предикату p.

Унаследовано от IterableOps

Source
override def tapEach[U](f: A => U): C

Применяет функцию побочного эффекта к каждому элементу в этой коллекции. Строгие коллекции немедленно применяют f к своим элементам, а ленивые коллекции, такие как представления и LazyLists, применяют f к каждому элементу только тогда, когда этот элемент оценивается, и каждый раз, когда этот элемент оценивается.

Тип параметров
U

тип возвращаемого значения f

Параметры значения
f

функция, применяемая к каждому элементу в этом итерируемом наборе

Возвращает

Тот же логический набор, что и этот

Определяющие классы IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Источник
def to[C1](factory: Factory[A, C1]): C1

Используя фабрику коллекций factory, преобразует эту коллекцию в соответствующую форму для текущего типа элемента A. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

Унаследовано от IterableOnceOps

Источник
def toArray[B >: A : ClassTag]: Array[B]

Преобразует коллекцию в массив.

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

Унаследовано от IterableOnceOps

Источник
final def toBuffer[B >: A]: Buffer[B]

Унаследовано от IterableOnceOps

Источник
def toIndexedSeq: IndexedSeq[A]

Унаследовано от IterableOnceOps

Источник
def toList: List[A]

Унаследовано от IterableOnceOps

Источник
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

Унаследовано от IterableOnceOps

Источник
def toSet[B >: A]: Set[B]

Унаследовано от IterableOnceOps

Источник
override def toString(): String

Возвращает строковое представление объекта.

По умолчанию представление зависит от платформы.

Возвращает

строковое представление объекта.

Определяющие классы Seq -> Function1 -> Iterable -> Any
Унаследовано от Seq

Источник
def toVector: Vector[A]

Унаследовано от IterableOnceOps

Источник
def transpose[B](implicit asIterable: A => 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.

Возвращаемое значение

двумерная итерируемая коллекция итерируемых коллекций, в которой n-я строка — это n-й столбец этой итерируемой коллекции.

Исключения
IllegalArgumentException

если все коллекции в этой итерируемой коллекции не имеют одинаковый размер.

Унаследовано от IterableOps

Источник
def unapply(a: Int): Option[B]

Попытка извлечь B из A в выражении сопоставления с образцом.

Унаследовано от PartialFunction

Источник
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

явное преобразование, утверждающее, что тип элементов этой итерируемой коллекции — пара.

Возвращаемое значение

пара итерируемых коллекций, содержащих первую и, соответственно, вторую половину каждой пары элементов этой итерируемой коллекции.

Унаследовано от 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

явное преобразование, утверждающее, что тип элементов этой итерируемой коллекции — тройка.

Возвращаемое значение

тройка итерируемых коллекций, содержащих первый, второй и, соответственно, третий член каждой тройки элементов этой итерируемой коллекции.

Унаследовано от IterableOps

Источник
def updated[B >: A](index: Int, elem: B): CC[B]

Копия этого последовательности с заменой одного элемента.

Параметры типа
B

тип элементов возвращаемой последовательности.

Параметры значения
elem

заменяющий элемент

index

позиция замены

Возвращаемое значение

новая последовательность, являющаяся копией этой последовательности с элементом на позиции index , замененным на elem.

Исключения
IndexOutOfBoundsException

если index не удовлетворяет 0 <= index < length. В случае ленивой коллекции это исключение может быть выброшено позже или вообще не выброшено (если конец коллекции никогда не вычисляется).

Унаследовано от SeqOps

Источник
override def view: SeqView[A]

Представление над элементами этой коллекции.

Определяющие классы SeqOps -> IterableOps
Унаследовано от SeqOps

Source
def withFilter(p: A => Boolean): WithFilter[A, CC]

Создаёт нестрогий фильтр этого итерируемого набора.

Примечание: различие между c filter p и c withFilter p заключается в том, что первый создаёт новый набор, тогда как второй только ограничивает область применения последующих map, flatMap, foreach, и withFilter операций.

Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этого итерируемого набора, которые удовлетворяют предикату p.

Унаследовано от IterableOps

Source
def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора, комбинируя соответствующие элементы в парах. Если один из двух наборов длиннее другого, его оставшиеся элементы игнорируются.

Параметры типа
B

тип второй половины возвращаемых пар

Параметры значения
that

Итерируемый набор, предоставляющий вторую половину каждой результатной пары

Возвращает

новый итерируемый набор, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that. Длина возвращаемого набора является минимальной из длин этого итерируемого набора и that.

Унаследовано от IterableOps

Source
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора, комбинируя соответствующие элементы в парах. Если один из двух наборов короче другого, для расширения более короткого набора до длины более длинного используются заполнители.

Параметры значения
that

итерируемый набор, предоставляющий вторую половину каждой результатной пары

thatElem

элемент, используемый для заполнения результата, если that короче этого итерируемого набора.

thisElem

элемент, используемый для заполнения результата, если этот итерируемый набор короче that.

Возвращает

новый набор типа That, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that. Длина возвращаемого набора является максимальной из длин этого итерируемого набора и that. Если этот итерируемый набор короче that, значения thisElem используются для дополнения результата. Если that короче этого итерируемого набора, значения thatElem используются для дополнения результата.

Унаследовано от IterableOps

Source
def zipWithIndex: CC[(A, Int)]

Объединяет этот итерируемый набор с его индексами.

Возвращает

Новый итерируемый набор, содержащий пары, состоящие из всех элементов этого итерируемого набора, сопоставленных с их индексом. Индексы начинаются с 0.

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Унаследовано от 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/Seq.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API