Spec-Zone.ru › Scala 3.2

Класс AbstractSeq.AbstractSeq

Исходный код

abstract class AbstractSeq[A] extends AbstractSeq[A] with Seq[A]

Явное создание экземпляра Seq для уменьшения размера файла класса в подклассах.

Суперопределения
20 типов
Трейт Seq[A]
Трейт SeqOps[A, Seq, Seq[A]]
Трейт Cloneable[Seq[A]]
Трейт Cloneable
Трейт Iterable[A]
Класс AbstractSeq[A]
Трейт Seq[A]
Трейт Equals
Трейт SeqOps[A, Seq, Seq[A]]
Трейт PartialFunction[Int, A]
Трейт Int => A
Класс AbstractIterable[A]
Трейт Iterable[A]
Трейт IterableFactoryDefaults[A, Seq]
Трейт IterableOps[A, Seq, Seq[A]]
Трейт IterableOnceOps[A, Seq, Seq[A]]
Трейт IterableOnce[A]
Класс Object
Трейт Matchable
Класс Any
Известные подтипы
19 типов
Класс AbstractBuffer[A]
Класс ArrayBuffer[A]
Класс ArrayDeque[A]
Класс Queue[A]
Класс Stack[A]
Класс ListBuffer[A]
Класс UnrolledBuffer[T]
Класс ArraySeq[T]
Класс ofBoolean
Класс ofByte
Класс ofChar
Класс ofDouble
Класс ofFloat
Класс ofInt
Класс ofLong
Класс ofRef[T]
Класс ofShort
Класс ofUnit
Класс StringBuilder

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

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

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

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

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

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

Определяющие классы SeqOps -> IterableOps
Унаследовано от SeqOps

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код
final def addString(b: StringBuilder, sep: String): StringBuilder

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

Пример:

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

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

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

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

sep

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

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

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

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

Исходный код
def 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, Chapter 28 для обсуждения и проектирования.

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

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

Возвращает

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

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

Исходный код
override def clone(): C

Создаёт копию объекта-приёмника.

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

Возвращает

копию объекта-приёмника.

Примечание

не указано в SLS как член AnyRef

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

функция A => T1

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

Source
def dropRight(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Source
def elementWise: ElementWiseExtractor[A, B]

Возвращает объект экстрактора с методом unapplySeq, который извлекает каждый элемент данных последовательности.

Пример
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
  case firstChar.unlift.elementWise(c0, c1, c2) =>
    println(s"$c0, $c1, $c2") // Output: f, b, b
}
Унаследовано от PartialFunction

Source
override def empty: CC[A]

Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Source
override def equals(o: Any): Boolean

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Преобразует этот итерируемый набор данных из наборов данных traversable в итерируемый набор данных, образованный элементами этих наборов данных traversable.

Тип результирующего набора данных будет определяться типом итерируемого набора данных. Например:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

z

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

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

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

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

Источник
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], это можно сделать, добавив в класс trait 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
END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

from

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Source
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

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

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

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

Возвращает

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

Пример

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

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

Исходный код
def intersect[B >: A](that: Seq[B]): C

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

Параметры
that

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

Возвращает

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

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

Исходный код
def isDefinedAt(idx: Int): Boolean

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

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

Параметры
idx

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

Возвращает

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

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

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

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

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

Возвращает

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

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

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

Проверяет, может ли эта итерируемая коллекция быть многократно перебрана. Всегда true для Iterables и false для Iterators, если не переопределено.

Возвращает

true, если она многократно перебираемая, false в противном случае.

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

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

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

Примечание

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

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

Источник
def iterator: Iterator[A]

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

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

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

Возвращает

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

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

Источник
def last: A

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

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

Возвращает

Последний элемент этой итерируемой коллекции.

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

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

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

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

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

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

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

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

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

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

end

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

индекс конца

that

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

Возвращает

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

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

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

Source
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

Source
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

Source
def lift: A => Option[B]

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

Возвращает

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

См. также

Function.unlift

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник
final def mkString(sep: String): String

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

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

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

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

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

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

Пример

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

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

Источник
final def mkString(start: String, sep: String, end: String): String

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

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

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

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

sep

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

start

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

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

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

Пример

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

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

Источник
protected def newSpecificBuilder: Builder[A, CC[A]]

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

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

Примечание

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

функция 'split', отображающая элементы этой итерируемой коллекции в 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

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

Произведение элементов этой коллекции.

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

бинарная операция.

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Источник
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

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

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

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

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

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

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

бинарная операция.

Возвращает

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

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

Источник
def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

class="attributes">
Тип параметров
B

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

class="attributes">
Тип параметров
B

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

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

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

Возвращает

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

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

Source
def reverse: C

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

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

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

class="attributes">
Возвращает

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

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

Source
def reverseIterator: Iterator[A]

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

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

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

class="attributes">
Возвращает

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

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

Source
protected def reversed: Iterable[A]

class="attributes">
Унаследовано от IterableOnceOps

Source
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 позволяет избежать двойной оценки совпадений шаблонов и условий для литералов частичной функции.

class="attributes">
Параметры значения
action

функция действия

Возвращает

функция, которая отображает аргументы x в isDefinedAt(x). Результирующая функция выполняет action(this(x)) там, где this определено.

См. также

applyOrElse.

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

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

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

class="attributes">
Унаследовано от SeqOps

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

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

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

class="attributes">
Тип параметров
B

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

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

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

z

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

Возвращает

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

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

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

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

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

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

class="attributes">
Тип параметров
B

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
class="attributes">
Тип параметров
B

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Источник
def tails: Iterator[C]

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

Возвращает

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

Пример

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

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

Источник
def take(n: Int): C

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

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

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

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

Возвращает

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

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

Источник
def takeRight(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

Возвращает

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

Унаследовано от 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 update(idx: Int, elem: A): Unit

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

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

новое значение.

idx

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

Исключения
IndexOutOfBoundsException

если индекс недопустим.

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

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

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

Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемое множество, сформированное из этого итерируемого множества и другого итерируемого множества путём комбинирования соответствующих элементов в пары. Если одно из двух множеств длиннее другого, оставшиеся элементы игнорируются.

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

тип второй половины возвращаемых пар

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

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

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

новое итерируемое множество, содержащее пары, состоящие из соответствующих элементов этого итерируемого множества и that. Длина возвращаемого множества — минимальное из длин этого итерируемого множества и that.

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

Источник
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/mutable/AbstractSeq.html

Spec-Zone.ru

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