Spec-Zone.ru › Scala 3.1

Класс scala.collection.immutable.List

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

@SerialVersionUID(3L)
sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with LinearSeqOps[A, List, List[A]] with StrictOptimizedLinearSeqOps[A, List, List[A]] with StrictOptimizedSeqOps[A, List, List[A]] with IterableFactoryDefaults[A, List] with DefaultSerializable

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

Этот класс поставляется с двумя реализующими case-классами scala.Nil и scala.:: , которые реализуют абстрактные члены isEmpty, head и tail.

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

Производительность

Время: List имеет O(1) добавление в начало и доступ к голове/хвосту. Большинство других операций выполняются за O(n) время, зависящее от количества элементов в списке. Это включает в себя поиск элементов по индексу, length, append и reverse.

Память: List реализует совместное использование структуры хвостового списка. Это означает, что многие операции имеют нулевую или постоянную стоимость памяти.

val mainList = List(3, 2, 1)
val with4 =    4 :: mainList  // re-uses mainList, costs one :: instance
val with42 =   42 :: mainList // also re-uses mainList, cost one :: instance
val shorter =  mainList.tail  // costs nothing as it uses the same 2::1::Nil instances as mainList
См. также

"Обзор библиотеки коллекций Scala" раздел по Lists для получения дополнительной информации.

Примечание

Функциональный список характеризуется сохранением состояния и совместным использованием структуры, что обеспечивает значительные преимущества в плане производительности и потребления памяти в некоторых сценариях при правильном использовании. Однако обратите внимание, что объекты, имеющие несколько ссылок на один и тот же функциональный список (то есть, объекты, которые полагаются на совместное использование структуры), будут сериализованы и десериализованы с несколькими списками, по одному для каждой ссылки на него. То есть совместное использование структуры теряется после сериализации/десериализации.

Пример
// Make a list via the companion object factory
val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
// Make a list element-by-element
val when = "AM" :: "PM" :: Nil
// Pattern match
days match {
  case firstDay :: otherDays =>
    println("The first day of the week is: " + firstDay)
  case Nil =>
    println("There don't seem to be any week days.")
}
Надтипы
29 типов
Трейт DefaultSerializable
Трейт Serializable
Трейт StrictOptimizedSeqOps[A, List, List[A]]
Трейт StrictOptimizedLinearSeqOps[A, List, List[A]]
Трейт StrictOptimizedSeqOps[A, List, List[A]]
Трейт StrictOptimizedIterableOps[A, List, List[A]]
Трейт LinearSeq[A]
Трейт LinearSeqOps[A, List, List[A]]
Трейт LinearSeq[A]
Трейт LinearSeqOps[A, List, List[A]]
Класс AbstractSeq[A]
Трейт Seq[A]
Трейт SeqOps[A, List, List[A]]
Трейт Iterable[A]
Класс AbstractSeq[A]
Трейт Seq[A]
Трейт Equals
Трейт SeqOps[A, List, List[A]]
Трейт PartialFunction[Int, A]
Трейт Int => A
Класс AbstractIterable[A]
Трейт Iterable[A]
Трейт IterableFactoryDefaults[A, List]
Трейт IterableOps[A, List, List[A]]
Трейт IterableOnceOps[A, List, List[A]]
Трейт IterableOnce[A]
Класс Object
Трейт Matchable
Класс Any
Известные подтипы
Класс ::[A]
Объект Nil.type

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

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

Добавляет элемент в начало этого списка.

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

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

Возвращает

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

1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3)

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

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

Пример:

List(1, 2) ::: List(3, 4) = List(3, 4).:::(List(1, 2)) = List(1, 2, 3, 4)
Параметры значения
prefix

Элементы списка для добавления в начало.

Возвращает

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

Исходный код
override def appendedAll[B >: A](suffix: IterableOnce[B]): List[B]

Классы определений StrictOptimizedSeqOps -> SeqOps

Исходный код
final override def collect[B](pf: PartialFunction[A, B]): List[B]

Классы определений StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

Исходный код
final override def contains[A1 >: A](elem: A1): Boolean

Классы определений LinearSeqOps -> SeqOps

Исходный код
override def corresponds[B](that: Seq[B])(p: (A, B) => Boolean): Boolean

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

Исходный код
override def equals(o: Any): Boolean

Классы определений Seq -> Equals -> Any

Исходный код
final override def exists(p: A => Boolean): Boolean

Классы определений LinearSeqOps -> IterableOnceOps

Исходный код
override def filter(p: A => Boolean): List[A]

Классы определений StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

Исходный код
override def filterNot(p: A => Boolean): List[A]

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

Исходный код
final override def find(p: A => Boolean): Option[A]

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

Исходный код
final override def flatMap[B](f: A => IterableOnce[B]): List[B]

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

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

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

Исходный код
final override def forall(p: A => Boolean): Boolean

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

Исходный код@inline
final override def foreach[U](f: A => U): Unit

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

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

Определяющие классы LinearSeqOps -> SeqOps -> IterableOnceOps

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

Определяющие классы LinearSeq -> LinearSeq -> Seq -> Iterable -> Seq -> Iterable -> IterableOps

Исходный код
override def last: A

Определяющие классы LinearSeqOps -> IterableOps

Исходный код
final override def length: Int

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

Исходный код
final override def lengthCompare(len: Int): Int

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

Исходный код
final override def map[B](f: A => B): List[B]

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

Исходный код@inline
final def mapConserve[B >: A <: AnyRef](f: A => B): List[B]

Создаёт новый список, применяя функцию ко всем элементам этого списка. Подобно xs map f, но возвращает xs без изменений, если функция f отображает все элементы на себя (как определяется eq).

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

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

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

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

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

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

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

Определяющие классы StrictOptimizedIterableOps -> IterableOps

Исходный код
override def prepended[B >: A](elem: B): List[B]

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

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

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

Исходный код
final override def reverse: List[A]

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

Исходный код
def reverse_:::[B >: A](prefix: List[B]): List[B]

Добавляет элементы заданного списка в обратном порядке перед этим списком. xs reverse_::: ys эквивалентно xs.reverse ::: ys, но более эффективно.

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

префикс для переворота и последующего добавления перед ним

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

соединение перевёрнутого префикса и текущего списка.

Исходный код
override def slice(from: Int, until: Int): List[A]

Пример
// Given a list
val letters = List('a','b','c','d','e')
// `slice` returns all elements beginning at index `from` and afterwards,
// up until index `until` (excluding index `until`.)
letters.slice(1,3) // Returns List('b','c')
Определяющие классы IterableOps -> IterableOnceOps

Исходный код@inline
final override def span(p: A => Boolean): (List[A], List[A])

Определяющие классы StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps

Исходный код
override def splitAt(n: Int): (List[A], List[A])

Определяющие классы IterableOps -> IterableOnceOps
END_OF_DOCUMENT_MARKER

Исходный код
override def take(n: Int): List[A]

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

Исходный код
override def takeRight(n: Int): List[A]

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

Исходный код@inline
final override def takeWhile(p: A => Boolean): List[A]

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

Исходный код
final override def toList: List[A]

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

Исходный код
override def updated[B >: A](index: Int, elem: B): List[B]

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

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

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

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

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

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

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

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

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

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

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

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

Псевдоним для appended. Обратите внимание, что операторы с суффиксом :- ассоциативны справа (см. пример). Мнемоника для +: против :+ такова: двоеточие ставится со стороны коллекции.

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

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

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

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

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

Исходный код@inline
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[Int, C]

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

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

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

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

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

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

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

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

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

Исходный код
override def andThen[C](k: A => C): PartialFunction[Int, C]

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

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

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

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

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

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

Возвращает

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

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

Источник
override def appended[B >: A](elem: B): List[B]

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

Источник@throws(scala.throws.$lessinit$greater$default$1[scala.IndexOutOfBoundsException])
override def apply(n: Int): A

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

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

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

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

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

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

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

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

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

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

x

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

Возвращает

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

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

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

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

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

Итерирует по комбинациям. _Комбинация_ длины 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, A]

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

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

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

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

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

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

Возвращает

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

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

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

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

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

тип, к которому можно применить функцию g

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

функция A => T1

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

Наследуется от IterableOnceOps

Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: A](xs: Array[B], start: Int): Int

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

Наследуется от IterableOnceOps

Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: A](xs: Array[B]): Int

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

Наследуется от IterableOnceOps

Source
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

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

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

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

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

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

Возвращает

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

Наследуется от IterableOnceOps

Source
override def diff[B >: A](that: Seq[B]): List[A]

Классы-определения StrictOptimizedSeqOps -> SeqOps
Наследуется от StrictOptimizedSeqOps

Source
def distinct: List[A]

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

Возвращает

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

Наследуется от SeqOps

Source
override def distinctBy[B](f: A => B): List[A]

Классы-определения StrictOptimizedSeqOps -> StrictOptimizedSeqOps -> SeqOps
Наследуется от StrictOptimizedSeqOps

Source
override def drop(n: Int): List[A]

Классы-определения StrictOptimizedLinearSeqOps -> IterableOps -> IterableOnceOps
Наследуется от StrictOptimizedLinearSeqOps

Source
override def dropRight(n: Int): List[A]

Часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно избегать создания копии.

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

Классы-определения StrictOptimizedIterableOps -> IterableOps
Наследуется от StrictOptimizedIterableOps

Source
override def dropWhile(p: A => Boolean): List[A]

Классы-определения StrictOptimizedLinearSeqOps -> IterableOps -> IterableOnceOps
Наследуется от StrictOptimizedLinearSeqOps

Source
def elementWise: ElementWiseExtractor[Int, A]

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

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

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

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

Исходный код
def endsWith[B >: A](that: Итерируемый[B]): Булево

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

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

Параметры
that

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

Возвращает

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

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

Исходный код
override def findLast(p: A => Булево): Опция[A]

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

Исходный код
override def flatten[B](implicit toIterableOnce: A => IterableOnce[B]): Список[B]

Классы-предки StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

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

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

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

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

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

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

Параметры
op

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

z

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

Возвращает

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

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

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

Классы-предки LinearSeqOps -> IterableOnceOps
Унаследовано от LinearSeqOps

Исходный код
protected def fromSpecific(coll: IterableOnce[A]): Список[A]

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

Исходный код
def groupBy[K](f: A => K): Карта[K, Список[A]]

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

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

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

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

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

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

Возвращает

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

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

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

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

Source
def groupMap[K, B](key: A => K)(f: A => B): Map[K, List[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

Source
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

Source
def grouped(size: Int): Iterator[List[A]]

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

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

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

Возвращает

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

См. также

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

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

Source
override def hashCode(): Int

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

Source
def head: A

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

Source
override def headOption: Option[A]

Definition Classes LinearSeqOps -> IterableOps
Inherited from LinearSeqOps

Source@deprecatedOverriding("Override indexOf(elem, from) instead - indexOf(elem) calls indexOf(elem, 0)", "2.13.0")
def indexOf[B >: A](elem: B): Int

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

Type parameters
B

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

Value parameters
elem

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

Returns

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

Inherited from SeqOps

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

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

Type parameters
B

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

Value parameters
elem

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

from

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

Returns

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

Inherited from SeqOps

Source@deprecatedOverriding("Override indexOfSlice(that, from) instead - indexOfSlice(that) calls indexOfSlice(that, 0)", "2.13.0")
def indexOfSlice[B >: A](that: Seq[B]): Int

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

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

Value parameters
that

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

Returns

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

Inherited from SeqOps

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

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

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

Value parameters
from

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

that

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

Returns

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

Inherited from SeqOps

Source@deprecatedOverriding("Override indexWhere(p, from) instead - indexWhere(p) calls indexWhere(p, 0)", "2.13.0")
def indexWhere(p: A => Boolean): Int

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

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

Value parameters
p

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

Returns

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

Inherited from SeqOps

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

Definition Classes LinearSeqOps -> SeqOps
Inherited from LinearSeqOps

Source
def indices: Range

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

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

Returns

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

Inherited from SeqOps

Source
def init: List[A]

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

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

Inherited from IterableOps

Source
def inits: Iterator[List[A]]

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

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

Returns

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

Example

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

Inherited from IterableOps

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

Definition Classes StrictOptimizedSeqOps -> SeqOps
Inherited from StrictOptimizedSeqOps

Source
override def isDefinedAt(x: Int): Boolean

Definition Classes LinearSeqOps -> SeqOps
Inherited from LinearSeqOps

Source
override def isTraversableAgain: Boolean

Definition Classes IterableOps -> IterableOnceOps
Inherited from IterableOps

Source
override def iterator: Iterator[A]

Definition Classes StrictOptimizedLinearSeqOps -> LinearSeqOps -> IterableOnce
Inherited from StrictOptimizedLinearSeqOps

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

Возвращает

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

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

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

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

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

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

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

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

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

end

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

Возвращает

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

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

Источник@deprecatedOverriding("Override lastIndexOfSlice(that, end) instead - lastIndexOfSlice(that) calls lastIndexOfSlice(that, Int.MaxValue)", "2.13.0")
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

Источник@deprecatedOverriding("Override lastIndexWhere(p, end) instead - lastIndexWhere(p) calls lastIndexWhere(p, Int.MaxValue)", "2.13.0")
def lastIndexWhere(p: A => Boolean): Int

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

Аналогично 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

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

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

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

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

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

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

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

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

Возвращает

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

См. также

Function.unlift

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

Возвращает

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

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

Источник@inline
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, List[A]]

Наследуется от IterableFactoryDefaults

Источник@deprecatedOverriding("nonEmpty определено как !isEmpty; переопределите isEmpty вместо этого", "2.13.0")
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

Источник
override def padTo[B >: A](len: Int, elem: B): List[B]

Классы определения StrictOptimizedSeqOps -> SeqOps
Наследуется от StrictOptimizedSeqOps

Источник
override def partitionMap[A1, A2](f: A => Either[A1, A2]): (List[A1], List[A2])

Классы определения StrictOptimizedIterableOps -> IterableOps
Наследуется от StrictOptimizedIterableOps

Источник
override def patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int): List[B]

Классы определения StrictOptimizedSeqOps -> SeqOps
Наследуется от StrictOptimizedSeqOps

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

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

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

Возвращает

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

Пример

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

Наследуется от 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

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

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

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

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

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

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

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

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

Возвращает

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

Исключение
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Источник
protected def reversed: Iterable[A]

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

Источник
def runWith[U](action: A => U): Int => Boolean

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

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

if(pf isDefinedAt x) { action(pf(x)); true } else false

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

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

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

Возвращает

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

См. также

applyOrElse.

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

Источник
override def sameElements[B >: A](that: IterableOnce[B]): Boolean

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Параметры типа
B

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

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

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

z

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

Возвращает

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

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

Источник
def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

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

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

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

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

from

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

ord

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

to

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

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

Примечание

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

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

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

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

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

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

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

ord

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

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

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

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

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

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

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

Источник
final override def sizeCompare(otherSize: Int): Int

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

Источник@inline
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 sliding(size: Int, step: Int): Iterator[List[A]]

Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» над ними (в отличие от их разбиения, как это делается в 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

Источник
def sliding(size: Int): Iterator[List[A]]

Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» над ними (в отличие от их разбиения, как это делается в 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

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

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

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

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

Сортировка устойчива. То есть, элементы, которые равны (как определено 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

Источник
def sortWith(lt: (A, A) => Boolean): List[A]

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

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

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

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

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

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

Возвращает

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

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследовано от SeqOps

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

Definition Classes StrictOptimizedSeqOps -> SeqOps
Inherited from StrictOptimizedSeqOps

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

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

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

Value parameters
offset

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

that

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

Returns

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

Inherited from SeqOps

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

Возвращает scala.collection.Stepper для элементов этого набора.

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

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

  • Для коллекций целых чисел, Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для коллекций Double или Float, возвращается scala.collection.DoubleStepper

  • Для коллекций Long возвращается scala.collection.LongStepper

  • Для любого другого типа элементов возвращается scala.collection.AnyStepper

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

Inherited from IterableOnce

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

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

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

Type parameters
B

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

Value parameters
num

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

Returns

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

Inherited from IterableOnceOps

Source
def tail: List[A]

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

Inherited from IterableOps

Source
override def tails: Iterator[List[A]]

Definition Classes LinearSeqOps -> IterableOps
Inherited from LinearSeqOps

Source
override def tapEach[U](f: A => U): List[A]

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

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

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

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

Inherited from IterableOnceOps

Source
def toArray[B >: A : ClassTag]: Array[B]

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

Примечание реализации: НЕ вызывайте Array.from из этого метода.

Inherited from IterableOnceOps

Source@inline
final def toBuffer[B >: A]: Buffer[B]

Inherited from IterableOnceOps

Source
def toIndexedSeq: IndexedSeq[A]

Inherited from IterableOnceOps

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

Inherited from IterableOnceOps

Source
final override def toSeq: List[A]

Definition Classes Seq -> IterableOnceOps
Inherited from Seq

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

Inherited from IterableOnceOps

Source
override def toString(): String

Definition Classes Seq -> Function1 -> Iterable -> Any
Inherited from Seq

Source
def toVector: Vector[A]

Inherited from IterableOnceOps

Source
def transpose[B](implicit asIterable: A => Iterable[B]): List[List[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[A]

Попытка извлечь B из A в выражении сопоставления с образцом.

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

Источник
override def unzip[A1, A2](implicit asPair: A => (A1, A2)): (List[A1], List[A2])

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

Источник
override def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (List[A1], List[A2], List[A3])

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

Источник
override def view: SeqView[A]

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

Источник
def withFilter(p: A => Boolean): WithFilter[A, List]

Создаёт нестрогий фильтр этого итерируемого набора.

Примечание: разница между c filter p и c withFilter p в том, что первый создаёт новый набор, а второй лишь ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.

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

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

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

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этого итерируемого набора, которые удовлетворяют предикату p.

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

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

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

Источник
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): List[(A1, B)]

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

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

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

thatElem

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

thisElem

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

Возвращает

новый набор типа That, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that. Длина возвращаемого набора — максимальная из длин этого итерируемого набора и that. Если этот итерируемый набор короче that, используются значения thisElem для заполнения результата. Если that короче, чем этот итерируемый набор, используются значения thatElem для заполнения результата.

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

Источник
override def zipWithIndex: List[(A, Int)]

Классы-предки StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от StrictOptimizedIterableOps

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/collection/immutable/List.html

Spec-Zone.ru

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