Класс List.List
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) предварение и доступ к head/tail. Большинство других операций — 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" раздел о |
|---|---|
| Примечание | Функциональный список характеризуется постоянством и совместным использованием структуры, что обеспечивает значительные преимущества в производительности и потреблении памяти в некоторых сценариях при правильном использовании. Однако обратите внимание, что объекты, имеющие несколько ссылок на один и тот же функциональный список (то есть объекты, которые полагаются на совместное использование структуры), будут сериализованы и десериализованы с несколькими списками, по одной для каждой ссылки на него. То есть совместное использование структуры теряется после сериализации/десериализации. |
| Пример |
// 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 типов |
| Известные подтипы |
Конкретные методы
Исходный код
Добавляет элемент в начало этого списка.
| Параметры значения |
|
|---|---|
| Возвращает |
список, содержащий 1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3) |
Исходный код
Добавляет элементы заданного списка перед этим списком.
Пример:
List(1, 2) ::: List(3, 4) = List(3, 4).:::(List(1, 2)) = List(1, 2, 3, 4)
| Параметры значения |
|
|---|---|
| Возвращает | список, полученный в результате конкатенации данного списка |
Исходный код
Возвращает новый список, содержащий элементы из левого операнда, за которым следуют элементы из правого операнда. Тип элемента списка — это самый общий суперкласс, охватывающий типы элементов двух операндов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая коллекция типа |
| Определяющие классы | StrictOptimizedSeqOps -> SeqOps |
Исходный код
Создаёт новый список, применяя частичную функцию ко всем элементам этого списка, для которых функция определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый список, полученный путём применения заданной частичной функции |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Исходный код
Проверяет, содержит ли этот список заданное значение в качестве элемента.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Определяющие классы | LinearSeqOps -> SeqOps |
Исходный код
Проверяет, удовлетворяет ли каждый элемент этого списка условию предиката для соответствующего элемента другого последовательного объекта.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns |
|
| Definition Classes | SeqOps |
Source
Метод универсального равенства, определённый в AnyRef.
| Definition Classes | Seq -> Equals -> Any |
|---|
Source
Проверяет, выполняется ли предикат хотя бы для одного элемента этого списка.
| Value parameters |
|
|---|---|
| Returns |
|
| Definition Classes | LinearSeqOps -> IterableOnceOps |
Source
Отбирает все элементы этого списка, которые удовлетворяют предикату.
| Value parameters |
|
|---|---|
| Returns | новый список, состоящий из всех элементов этого списка, удовлетворяющих заданному предикату |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Source
Отбирает все элементы этого списка, которые не удовлетворяют предикату.
| Value parameters |
|
|---|---|
| Returns | новый список, содержащий все элементы этого списка, которые не удовлетворяют заданному предикату |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Source
Находит первый элемент списка, удовлетворяющий предикату, если таковой существует.
| Value parameters |
|
|---|---|
| Returns | значение Option, содержащее первый элемент в списке, удовлетворяющий |
| Definition Classes | LinearSeqOps -> IterableOnceOps |
Source
Создаёт новый список, применяя функцию ко всем элементам этого списка и используя элементы полученных коллекций.
Например:
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)
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | новый список, полученный в результате применения заданной функции, принимающей набор, |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Источник
final override def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого списка и начальному значению, двигаясь справа налево.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращаемое значение | результат вставки |
| Определяющие классы | IterableOnceOps |
Источник
Проверяет, выполняется ли предикат для всех элементов этого списка.
| Параметры значений |
|
|---|---|
| Возвращаемое значение |
|
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
Источник
Применяет f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи в инференции типов scalac.
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
|---|
Источник
Проверяет, пуст ли список.
Примечание: Реализации в подклассах, которые не являются многократно проходимыми, должны следить за тем, чтобы не потреблять никаких элементов, когда isEmpty вызывается.
| Возвращаемое значение |
|
|---|---|
| Определяющие классы | LinearSeqOps -> SeqOps -> IterableOnceOps |
Источник
Объект-компаньон этого списка, предоставляющий различные методы создания.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Определяющие классы | LinearSeq -> LinearSeq -> Seq -> Iterable -> Seq -> Iterable -> IterableOps |
Источник
override def last: A
Выбирает последний элемент.
| Возвращает | Последний элемент этого списка. |
|---|---|
| Выбрасывает |
|
| Определяющие классы | LinearSeqOps -> IterableOps |
Источник
Длина (количество элементов) списка. size является псевдонимом для length в коллекциях Seq.
| Определяющие классы | LinearSeqOps -> SeqOps |
|---|
Источник
Сравнивает длину этого списка с тестовым значением.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len Реализация метода здесь не вызывает |
| См. также | |
| Определяющие классы | LinearSeqOps -> SeqOps |
Источник
Создает новый список, применяя функцию ко всем элементам этого списка.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый список, полученный путем применения заданной функции |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Источник
Создаёт новый список, применяя функцию ко всем элементам этого списка. Подобно xs map f, но возвращает xs без изменений, если функция f отображает все элементы на себя (как определено eq).
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | список, полученный путем применения заданной функции |
Источник
Пара, состоящая из, во-первых, всех элементов, которые удовлетворяют предикату p, и, во-вторых, всех элементов, которые не удовлетворяют. Интересно, потому что разбиение коллекции на две части.
Реализация по умолчанию здесь должна пройти по коллекции дважды. Строгие коллекции имеют переопределенный вариант partition в StrictOptimizedIterableOps, который требует только одного прохода.
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
|---|
Источник
Копия списка с добавленным элементом в начало.
Кроме того, исходный список не изменяется, поэтому вам необходимо будет захватить результат.
Пример:
scala> val x = List(1) x: List[Int] = List(1) scala> val y = 2 +: x y: List[Int] = List(2, 1) scala> println(x) List(1)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый список, состоящий из |
| Определяющие классы | StrictOptimizedSeqOps -> SeqOps |
Источник
Как и :++, возвращает новую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда.
Отличается от :++ тем, что правый операнд определяет тип результирующей коллекции, а не левый. Мемоника: двоеточие находится на стороне нового типа коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый список, который содержит все элементы |
| Определяющие классы | StrictOptimizedSeqOps -> SeqOps |
Источник
Возвращает новый список с элементами в обратном порядке.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Новый список со всеми элементами этого списка в обратном порядке. |
|---|---|
| Определяющие классы | SeqOps |
Источник
Добавляет элементы заданного списка в обратном порядке в начало этого списка. xs reverse_::: ys эквивалентно xs.reverse ::: ys, но более эффективно.
| Параметры значения |
|
|---|---|
| Возвращает | соединение перевернутого префикса и текущего списка. |
Источник
| Пример |
// 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 |
Источник
Разделяет этот список на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
| Параметры значения |
|
|---|---|
| Возвращает | пара, состоящая из самого длинного префикса этого списка, элементы которого удовлетворяют |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
Источник
Разделяет этот список на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
| Параметры значения |
|
|---|---|
| Возвращает | пара списков, состоящая из первых |
| Классы определения | IterableOps -> IterableOnceOps |
Источник
Выбирает первые n элементов.
| Параметры значения |
|
|---|---|
| Возвращает | список, содержащий только первые |
| Классы определения | IterableOps -> IterableOnceOps |
Источник
Коллекция, содержащая последние n элементы этой коллекции.
Примечание: даже при применении к представлению или ленивой коллекции, все элементы всегда будут принудительно вычислены.
| Классы определения | StrictOptimizedIterableOps -> IterableOps |
|---|
Источник
Извлекает наибольший префикс элементов, удовлетворяющих предикату.
| Параметры значения |
|
|---|---|
| Возвращает | наибольший префикс этого списка, чьи элементы удовлетворяют предикату |
| Классы определения | IterableOps -> IterableOnceOps |
Источник
| Классы определения | IterableOnceOps |
|---|
Источник
Копия этого списка с одним заменённым элементом.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый список, являющийся копией этого списка с элементом в позиции |
| Исключения |
|
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
Методы, унаследованные от предков
Источник
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для concat
| Унаследовано от | IterableOps |
|---|
Источник
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]
Псевдоним для prependedAll
| Классы определения | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Источник
final def +:[B >: A](elem: B): CC[B]
Псевдоним для prepended.
Обратите внимание, что операторы с окончанием «:-» являются правоассоциативными (см. пример). Мемоник для +: по сравнению с :+ таков: двоеточие идёт со стороны коллекции.
| Унаследовано от | SeqOps |
|---|
Источник
final def :+[B >: A](elem: B): CC[B]
Псевдоним для appended
Обратите внимание, что операторы с окончанием «:-» являются правоассоциативными (см. пример). Мемоник для +: по сравнению с :+ таков: двоеточие идёт со стороны коллекции.
| Унаследовано от | SeqOps |
|---|
Источник
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для appendedAll
| Унаследовано от | SeqOps |
|---|
Источник
Добавляет все элементы этой коллекции в строковый буфер. Записываемый текст состоит из строковых представлений (с точки зрения метода toString) всех элементов этой коллекции без разделительной строки.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> val h = a.addString(b) h: StringBuilder = 1234
| Параметры значения |
|
|---|---|
| Возвращает | строковый буфер |
| Унаследовано от | IterableOnceOps |
Источник
Добавляет все элементы этой коллекции в строковый буфер, используя разделительную строку. Записываемый текст состоит из строковых представлений (с точки зрения метода toString) всех элементов этой коллекции, разделенных строкой sep.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> a.addString(b, ", ") res0: StringBuilder = 1, 2, 3, 4
| Параметры значения |
|
|---|---|
| Возвращает | строковый буфер |
| Унаследовано от | IterableOnceOps |
Источник
Добавляет все элементы этой коллекции в строковый буфер, используя начальную, конечную и разделительные строки. Записываемый текст начинается со строки 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)
| Параметры значения |
|
|---|---|
| Возвращает | строковый буфер |
| Унаследовано от | IterableOnceOps |
Источник
Компонует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.
Обратите внимание, что вызов isDefinedAt на полученной частичной функции может применить первую частичную функцию и выполнить её побочное действие. Для повышения эффективности рекомендуется вызывать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, суженной другой частичной функцией, которая отображает аргументы |
| Унаследовано от | PartialFunction |
Источник
override def andThen[C](k: A => C): PartialFunction[A, C]
Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
Если тип функции в момент выполнения является PartialFunction, то используется другой метод andThen (обратите внимание на его предостережения).
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, возможно, суженной указанной функцией, которая отображает аргументы |
| Классы определений | PartialFunction -> Function1 |
| Унаследовано от | PartialFunction |
Источник
override 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следует |
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Получение элемента по указанному индексу. Эта операция предоставляется для удобства в Seq. Не следует предполагать её эффективность, если у вас нет IndexedSeq.
| Классы определений | LinearSeqOps -> SeqOps |
|---|---|
| Унаследовано от | LinearSeqOps |
Источник
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1
Применяет эту частичную функцию к заданному аргументу, если он содержится в области определения функции. Применяет функцию по умолчанию, если эта частичная функция не определена.
Обратите внимание, что выражение pf.applyOrElse(x, default) эквивалентно
if(pf isDefinedAt x) pf(x) else default(x)
за исключением того, что метод applyOrElse может быть реализован более эффективно. Для всех литералов частичных функций компилятор генерирует реализацию applyOrElse, которая избегает двойного вычисления соответствий шаблонов и условий. Это делает applyOrElse основой для эффективной реализации во многих операциях и сценариях, таких как:
- объединение частичных функций в цепочки orElse/andThen не приводит к чрезмерному вычислению apply/isDefinedAt - lift и unlift не вычисляют исходные функции дважды при каждом вызове - runWith позволяет эффективно объединять частичные функции в императивном стиле с условным применением действий
Для классов частичных функций, не являющихся литералами, с ненулевой реализацией метода isDefinedAt, рекомендуется переопределить applyOrElse с пользовательской реализацией, которая избегает двойного вычисления isDefinedAt. Это может привести к лучшей производительности и более предсказуемому поведению относительно побочных эффектов.
| Параметры значения |
|
|---|---|
| Возвращает | результат применения этой функции или функции по умолчанию. |
| Унаследовано от | PartialFunction |
Источник
Метод, который должен вызываться из каждой хорошо спроектированной функции equals, открытой для переопределения в подклассе. См. Programming in Scala, Chapter 28 для обсуждения и проектирования.
| Параметры значения |
|
|---|---|
| Возвращает | true, если этот экземпляр потенциально равен |
| Унаследовано от | Seq |
Источник
Находит первый элемент в коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершиться для бесконечных коллекций.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение Option, содержащее pf, применённое к первому значению, для которого оно определено, или |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
Итерируется по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке следования. Таким образом, "xy" и "yy" являются комбинациями длины 2 "xyy", но "yx" — нет. Если существует более одного способа сгенерировать одну и ту же подпоследовательность, будет возвращена только одна.
Например, "xyyy" имеет три различных способа сгенерировать "xy" в зависимости от того, какой первый, второй или третий "y" выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трёх будет выбран, является деталью реализации, которая не определена.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут форсироваться.
| Возвращает | Итератор, проходящий по возможным комбинациям элементов длины n этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Источник
Компонует другую частичную функцию k с этой частичной функцией, так что эта частичная функция применяется к результатам k.
Обратите внимание, что вызов isDefinedAt на результирующей частичной функции может применить первую частичную функцию и выполнить её побочное действие. Для повышения эффективности рекомендуется вызывать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения другой частичной функции, суженной этой частичной функцией, которая отображает аргументы |
| Унаследовано от | PartialFunction |
Source
Компонует две функции Function1 в новую Function1, при этом данная функция применяется последней.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новая функция |
| Унаследовано от | Function1 |
Source
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]
Возвращает новую последовательность, содержащую элементы левого операнда, за которыми следуют элементы правого операнда. Тип элементов последовательности — это наиболее специфичный суперкласс, охватывающий типы элементов двух операндов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новая последовательность, которая содержит все элементы этой последовательности, за которыми следуют все элементы |
| Классы определения | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Source
Проверяет, содержит ли эта последовательность заданную последовательность как срез.
Примечание: для бесконечных коллекций может не завершаться.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Source
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет данный массив xs начиная с индекса start не более чем len элементами этой коллекции.
Копирование прекратится, как только будут скопированы все элементы этой коллекции, или будет достигнут конец массива, или len элементов будут скопированы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Повторное использование: После вызова этого метода итератор, на котором он был вызван, следует удалить. Использование его не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет данный массив xs начиная с индекса start значениями из этой коллекции.
Копирование прекратится, как только будут скопированы все элементы этой коллекции или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Повторное использование: После вызова этого метода итератор, на котором он был вызван, следует удалить. Использование его не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет указанный массив xs начиная с индекса start значениями из этого набора.
Копирование прекращается, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Значения параметров |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода итератор, на котором он был вызван, следует отбросить. Использование его неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя предикат проверки.
Примечание: не будет завершаться для бесконечных наборов.
| Параметры типа |
|
|---|---|
| Значения параметров |
|
| Возвращаемое значение |
|
| Унаследовано от | IterableOnceOps |
Source
Подсчитывает количество элементов в наборе, удовлетворяющих предикату.
Примечание: не будет завершаться для бесконечных наборов.
| Значения параметров |
|
|---|---|
| Возвращаемое значение | количество элементов, удовлетворяющих предикату |
| Унаследовано от | IterableOnceOps |
Source
Вычисляет разность множеств между этой последовательностью и другой последовательностью.
| Значения параметров |
|
|---|---|
| Возвращаемое значение | новая последовательность, содержащая все элементы этой последовательности, за исключением некоторых вхождений элементов, которые также присутствуют в |
| Классы-определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Source
def distinct: C
Выбирает все элементы этой последовательности, игнорируя дубликаты.
| Возвращаемое значение | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
|---|---|
| Унаследовано от | SeqOps |
Source
override def distinctBy[B](f: A => B): C
Выбирает все элементы этой последовательности, игнорируя дубликаты, определяемые по ==, после применения преобразовательной функции f.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую последовательность, состоящую из всех элементов этой последовательности без дубликатов. |
| Определяющие классы | StrictOptimizedSeqOps -> StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Исходный код
Выбирает все элементы, кроме первых n.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящую из всех элементов этой последовательности, кроме первых |
| Определяющие классы | StrictOptimizedLinearSeqOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedLinearSeqOps |
Исходный код
Остальная часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно избежать создания копии.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Удаляет самую длинную префиксную часть элементов, удовлетворяющих предикату.
| Параметры значения |
|
|---|---|
| Возвращает | самое длинное суффиксное подмножество этой последовательности, первый элемент которого не удовлетворяет предикату |
| Определяющие классы | StrictOptimizedLinearSeqOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedLinearSeqOps |
Исходный код
def elementWise: ElementWiseExtractor[A, B]
Возвращает объект-экстрактор с методом unapplySeq, который извлекает каждый элемент данных последовательности.
| Пример |
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
case firstChar.unlift.elementWise(c0, c1, c2) =>
println(s"$c0, $c1, $c2") // Output: f, b, b
}
|
|---|---|
| Унаследовано от | PartialFunction |
Исходный код
override def empty: CC[A]
Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция.
| Возвращает | пустая итерируемая коллекция типа |
|---|---|
| Определяющие классы | IterableFactoryDefaults -> IterableOps |
| Унаследовано от | IterableFactoryDefaults |
Исходный код
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не завершится для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Исходный код
Находит последний элемент в последовательности, удовлетворяющий предикату, если он есть.
Примечание: не завершится для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | значение Option, содержащее последний элемент в последовательности, удовлетворяющий |
| Определяющие классы | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Исходный код
override def flatten[B](implicit toIterableOnce: A => IterableOnce[B]): CC[B]
Преобразует эту итерируемую коллекцию коллекций в итерируемую коллекцию, образованную элементами этих коллекций.
Тип результирующей коллекции будет определяться типом итерируемой коллекции. Например:
val xs = List(
Set(1, 2, 3),
Set(1, 2, 3)
).flatten
// xs == List(1, 2, 3, 1, 2, 3)
val ys = Set(
List(1, 2, 3),
List(3, 2, 1)
).flatten
// ys == Set(1, 2, 3)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, полученная путем конкатенации всех итерируемых коллекций элементов. |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Вычисляет результат применения заданного ассоциативного бинарного оператора ко всем элементам этой коллекции. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективного порядка обхода.
Порядок выполнения операций над элементами не определен и может быть недетерминированным.
Примечание: не завершится для бесконечных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат применения оператора fold |
| Унаследовано от | IterableOnceOps |
Исходный код
override def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этой последовательности слева направо.
Примечание: не завершится для бесконечных коллекций.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | результат вставки |
| Определяющие классы | LinearSeqOps -> IterableOnceOps |
| Унаследовано от | LinearSeqOps |
Источник
protected def fromSpecific(coll: IterableOnce[A]): CC[A]
Определяет, как преобразовать заданную Iterable[A] в коллекцию типа C.
Этот процесс может быть выполнен жёстким или нежёстким способом (т. е. без вычисления элементов результирующих коллекций). Другими словами, этот метод определяет модель вычисления коллекции.
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как видно из аннотации |
|---|---|
| Унаследовано от | IterableFactoryDefaults |
Источник
Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с некоторой функцией-дискриминатором.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает |
Карта, где ключи соответствуют итерируемым коллекциям, таким, что выполняется следующее инвариантное свойство: (xs groupBy f)(k) = xs filter (x => f(x) == k) То есть, каждый ключ |
| Унаследовано от | IterableOps |
Источник
Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором key. Каждый элемент в группе преобразуется в значение типа B с использованием функции value.
Эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.
case class User(name: String, age: Int) def namesByAge(users: Seq[User]): Map[Int, Seq[String]] = users.groupMap(_.age)(_.name)
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Унаследовано от | IterableOps |
Источник
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]
Разделяет эту итерируемую коллекцию на карту в соответствии с функцией-дискриминатором key . Все значения с одинаковым дискриминатором затем преобразуются функцией f и затем сводятся к единственному значению с помощью функции reduce.
Эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.
def occurrences[A](as: Seq[A]): Map[A, Int] = as.groupMapReduce(identity)(_ => 1)(_ + _)
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Унаследовано от | IterableOps |
|---|
Источник
Разбивает элементы на итерируемые коллекции фиксированного размера.
| Параметры значений |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые коллекции размером |
| См. также | scala.collection.Iterator, метод |
| Унаследовано от | IterableOps |
Источник
Вычисляет хеш-код объекта.
Алгоритм хеширования по умолчанию зависит от платформы.
Обратите внимание, что допускается, чтобы у двух объектов были идентичные хеш-коды (o1.hashCode.equals(o2.hashCode)) но при этом объекты не были равны (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true) то у них были идентичные хеш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода, убедитесь, что поведение согласуется с методом equals.
| Возвращает | значение хеш-кода для этого объекта. |
|---|---|
| Определяющие классы | Seq -> Any |
| Унаследовано от | Seq |
Источник
def head: A
Выбирает первый элемент этой итерируемой коллекции.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Возвращает | первый элемент этой итерируемой коллекции. |
|---|---|
| Выбрасывает |
|
| Унаследовано от | IterableOps |
Источник
override def headOption: Option[A]
Выбирает первый элемент, если он есть.
| Возвращает | первый элемент этой последовательности, если она не пустая, |
|---|---|
| Определяющие классы | LinearSeqOps -> IterableOps |
| Унаследовано от | LinearSeqOps |
Источник
Находит индекс первого вхождения значения в этой последовательности.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого вхождения значения в этой последовательности после или на определённом начальном индексе.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс после или на начальном индексе, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на некотором начальном индексе.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Классы определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Источник
Создаёт диапазон всех индексов этой последовательности.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычисляться.
| Возвращает | значение |
|---|---|
| Унаследовано от | SeqOps |
Источник
def init: C
Начальная часть коллекции без последнего элемента.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычисляться.
| Унаследовано от | IterableOps |
|---|
Источник
Итерируется по начальным частям этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результаты последовательных применений init.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычисляться.
| Возвращает | итератор по всем начальным частям этой итерируемой коллекции |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Вычисляет пересечение мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, которые также присутствуют в |
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Проверяет, содержит ли эта последовательность заданный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Классы определения | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Источник
override def isTraversableAgain: Boolean
Проверяет, может ли эта итерируемая коллекция быть многократно пройдена. Всегда истинно для Iterables и ложно для Iterators, если не переопределено.
| Возвращает |
|
|---|---|
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Итератор может быть использован только один раз
| Классы определения | StrictOptimizedLinearSeqOps -> LinearSeqOps -> IterableOnce |
|---|---|
| Унаследовано от | StrictOptimizedLinearSeqOps |
Источник
| Возвращает | Количество элементов в этой коллекции, если оно может быть вычислено с низкими затратами, -1 в противном случае. Низкие затраты обычно означают: не требуют обхода коллекции. |
|---|---|
| Унаследовано от | IterableOnce |
Source
Находит индекс последнего вхождения некоторого значения в этой последовательности перед или на заданном индексе конца.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Source
Находит последний индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс, такой что элементы этой последовательности, начинающиеся с этого индекса, соответствуют элементам последовательности |
| Унаследовано от | SeqOps |
Source
Находит последний индекс до или на заданном индексе конца, где эта последовательность содержит заданную последовательность как срез.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс |
| Унаследовано от | SeqOps |
Source
Находит индекс последнего элемента, удовлетворяющего некоторому предикату.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс последнего элемента этой последовательности, удовлетворяющего предикату |
| Унаследовано от | SeqOps |
Source
Находит индекс последнего элемента, удовлетворяющего некоторому предикату перед или на заданном индексе конца.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Классы определений | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Source
def lastOption: Option[A]
Возвращает опцию последнего элемента.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Возвращает | последний элемент этого итерируемого набора$ если он не пустой, |
|---|---|
| Унаследовано от | IterableOps |
Источник
Аналогично zip за исключением того, что элементы в каждом наборе не потребляются до вызова строгой операции над возвращаемым LazyZip2 декоратором.
Вызовы к lazyZip могут быть объединены для поддержки более высоких арий (до 4) без дополнительных затрат на создание и деконструкцию промежуточных кортежей.
val xs = List(1, 2, 3) val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d) // res == List(4, 8, 12)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | декоратор |
| Унаследовано от | Iterable |
Источник
Сравнивает длину этой последовательности с размером другого Iterable.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < that.size x == 0 if this.length == that.size x > 0 if this.length > that.size Реализация этого метода не вызывает |
| Классы определений | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Источник
final def lengthIs: SizeCompareOps
Возвращает значение класса, содержащее операции для сравнения длины этой последовательности со значением теста.
Эти операции реализованы в терминах lengthCompare(Int), и позволяют использовать следующие более читаемые выражения:
this.lengthIs < len // this.lengthCompare(len) < 0 this.lengthIs <= len // this.lengthCompare(len) <= 0 this.lengthIs == len // this.lengthCompare(len) == 0 this.lengthIs != len // this.lengthCompare(len) != 0 this.lengthIs >= len // this.lengthCompare(len) >= 0 this.lengthIs > len // this.lengthCompare(len) > 0
| Унаследовано от | SeqOps |
|---|
Источник
Преобразует эту частичную функцию в обычную функцию, возвращающую результат Option.
| Возвращает | функцию, принимающую аргумент |
|---|---|
| См. также | Function.unlift |
| Унаследовано от | PartialFunction |
Источник
Находит наибольший элемент.
Примечание: не завершится для бесконечных наборов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наибольший элемент этого набора по отношению к упорядочению |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наибольшим значением, измеренным функцией f с учётом порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение option, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f с учётом порядка |
| Унаследовано от | IterableOnceOps |
Source
Находит наибольший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение option, содержащее наибольший элемент этой коллекции с учётом порядка |
| Унаследовано от | IterableOnceOps |
Source
Находит наименьший элемент.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наименьший элемент этой коллекции с учётом порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наименьшим значением, измеренным функцией f с учётом порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
Находит первый элемент, который возвращает наименьшее значение, измеряемое функцией f.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа option, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Source
Находит наименьший элемент.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа option, содержащее наименьший элемент этой коллекции относительно порядка |
| Унаследовано от | IterableOnceOps |
Source
Отображает все элементы этой коллекции в строке.
Делегирует addString, который можно переопределить.
| Возвращает | строковое представление этой коллекции. В результирующей строке строковые представления (с точки зрения метода |
|---|---|
| Унаследовано от | IterableOnceOps |
Source
Отображает все элементы этой коллекции в строке с использованием разделительной строки.
Делегирует addString, который можно переопределить.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этой коллекции. В результирующей строке строковые представления (с точки зрения метода |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Source
Отображает все элементы этой коллекции в строке с использованием начальной, конечной и разделительной строк.
Делегирует addString, который можно переопределить.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этой коллекции. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
protected def newSpecificBuilder: Builder[A, CC[A]]
| Возвращает | строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализация этого метода возможна, но полученный |
|---|---|
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как показывает аннотация |
| Унаследовано от | IterableFactoryDefaults |
Источник
Проверяет, не пуста ли коллекция.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Источник
Компонует эту частичную функцию с резервной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция, область определения которой является объединением областей определения этой частичной функции и |
| Унаследовано от | PartialFunction |
Источник
Копия этой последовательности с добавленными элементами до достижения заданной длины.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следуют минимальное количество повторений |
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
override 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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пару коллекций-итераторов: первая содержит те значения, возвращённые |
| Классы определения | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Source
Производит новую последовательность, где фрагмент элементов в этой последовательности заменяется другой последовательностью.
Замена по отрицательным индексам эквивалентна замене, начинающейся с 0. Замена по индексам, равным или большим длины исходной последовательности, добавляет замену в конец. Если заменяемых значений больше, чем фактически существует, избыток игнорируется.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за исключением того, что |
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Source
def permutations: Iterator[C]
Итерируется по различным перестановкам.
Примечание: даже когда применяется к представлению или ленивой коллекции, она всегда принудительно заставляет элементы.
| Возвращает | Итератор, проходящий по различным перестановкам этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Source
Умножает элементы этой коллекции.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | произведение всех элементов этой коллекции относительно |
| Унаследовано от | IterableOnceOps |
Source
def reduce[B >: A](op: (B, B) => B): B
Приводит элементы этой коллекции, используя указанную ассоциативную бинарную операцию.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Результат применения оператора reduce |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceLeft[B >: A](op: (B, A) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции, слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Применяет бинарный оператор ко всем элементам этой коллекции, слева направо, необязательно.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение опции, содержащее результат |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Приводит элементы этой коллекции, если таковые имеются, с помощью указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Значение опции, содержащее результат применения оператора reduce |
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceRight[B >: A](op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции, справа налево.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Исходный код
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Необязательно применяет бинарный оператор ко всем элементам этой коллекции, справа налево.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение опции, содержащее результат |
| Унаследовано от | IterableOnceOps |
Исходный код
def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
| Возвращает | итератор, возвращающий элементы этой последовательности в обратном порядке |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
Компонует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
кроме того, что runWith реализовано через applyOrElse и, следовательно, потенциально более эффективно. Использование runWith позволяет избежать двойной оценки совпадений шаблонов и защит для частичных функций-литералов.
| Параметры значения |
|
|---|---|
| Возвращает | функция, которая отображает аргументы |
| См. также |
|
| Унаследовано от | PartialFunction |
Исходный код
Являются ли элементы этой коллекции такими же (и в том же порядке), как у that?
| Определяющие классы | LinearSeqOps -> SeqOps |
|---|---|
| Унаследовано от | LinearSeqOps |
Исходный код
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]
Вычисляет префиксное сканирование элементов коллекции.
Примечание: нейтральный элемент z может применяться более одного раза.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерабельная коллекция, содержащая префиксное сканирование элементов в этой итерабельной коллекции |
| Унаследовано от | IterableOps |
Исходный код
override def scanLeft[B](z: B)(op: (B, A) => B): CC[B]
Создаёт итерабельную коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры типа |
|
|---|---|
| Параметры значений |
|
| Возвращает | набор с промежуточными результатами |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Источник
def scanRight[B](z: B)(op: (A, B) => B): CC[B]
Создаёт набор, содержащий кумулятивные результаты применения оператора справа налево. Головка набора — последний кумулятивный результат.
Примечание: не завершит работу для наборов бесконечной длины.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
Примечание: даже при применении к представлению или ленивому набору, все элементы будут принудительно вычислены.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
| Параметры типа |
|
|---|---|
| Параметры значений |
|
| Возвращает | набор с промежуточными результатами |
| Унаследовано от | IterableOps |
Источник
Поиск элемента в заданном интервале отсортированной последовательности. Если последовательность является IndexedSeq, используется бинарный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована с использованием того же Ordering перед вызовом; в противном случае результаты неопределённы.
| Параметры значений |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Примечание | если |
| Унаследовано от | SeqOps |
Источник
Поиск элемента в этой отсортированной последовательности. Если последовательность является IndexedSeq, используется бинарный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована с использованием того же Ordering перед вызовом; в противном случае результаты неопределённы.
| Параметры значений |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Унаследовано от | SeqOps |
Источник
Вычисляет длину самой длинной последовательности, которая начинается с указанного индекса, и все её элементы удовлетворяют определённому предикату.
Примечание: может не завершить работу для наборов бесконечной длины.
| Параметры значений |
|
|---|---|
| Возвращает | длину самой длинной последовательности в этом наборе, начинающейся с индекса |
| Определяющие классы | LinearSeqOps -> SeqOps |
| Унаследовано от | LinearSeqOps |
Источник
Вычисляет длину самой длинной последовательности, которая начинается с первого элемента, и все её элементы удовлетворяют определённому предикату.
Примечание: может не завершить работу для наборов бесконечной длины.
| Параметры значений |
|
|---|---|
| Возвращает | длину самой длинной последовательности в этой последовательности, начинающейся с первого элемента, где каждый элемент последовательности удовлетворяет предикату |
| Унаследовано от | SeqOps |
Источник
Размер этой последовательности.
Примечание: не завершит работу для наборов бесконечной длины.
| Возвращает | количество элементов в этой последовательности. |
|---|---|
| Определяющие классы | SeqOps -> IterableOnceOps |
| Унаследовано от | SeqOps |
Источник
Сравнивает размер этой последовательности с размером другого Iterable.
| Параметры значений |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < that.size x == 0 if this.size == that.size x > 0 if this.size > that.size Метод, как он реализован здесь, не вызывает |
| Определяющие классы | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Источник
Сравнивает размер этой последовательности со значением.
| Параметры значений |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < otherSize x == 0 if this.size == otherSize x > 0 if this.size > otherSize Метод, как он реализован здесь, не вызывает |
| См. также | |
| Определяющие классы | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Источник
final def sizeIs: SizeCompareOps
Возвращает значение, содержащее операции для сравнения размера этого набора итераций с тестовым значением.
Эти операции реализованы в терминах sizeCompare(Int) и позволяют использовать более читабельный код:
this.sizeIs < size // this.sizeCompare(size) < 0 this.sizeIs <= size // this.sizeCompare(size) <= 0 this.sizeIs == size // this.sizeCompare(size) == 0 this.sizeIs != size // this.sizeCompare(size) != 0 this.sizeIs >= size // this.sizeCompare(size) >= 0 this.sizeIs > size // this.sizeCompare(size) > 0
| Унаследовано от | IterableOps |
|---|
Источник
Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от разбиения на части, как в grouped).
Возвращаемый итератор будет пустым, если вызван на пустом наборе. Последний элемент, который генерирует итератор, может быть меньше размера окна, если исходный набор не исчерпан окном до его конца и его последний элемент не пропущен шагом перед ним.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от разбиения на части, как в grouped).
Пустой набор возвращает пустой итератор, а непустой набор, содержащий меньше элементов, чем размер окна, возвращает итератор, который сгенерирует исходный набор как единственный элемент.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Сортирует эту последовательность в соответствии с порядком, полученным путем преобразования неявно заданного порядка с помощью функции преобразования.
Примечание: не завершится для последовательностей бесконечного размера.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
Сортировка устойчива. То есть элементы, которые равны (как определено ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с порядком, где |
| См. также | |
| Пример |
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с функцией сравнения.
Примечание: не завершится для последовательностей бесконечного размера.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
Сортировка устойчива. То есть элементы, которые равны (как определено lt), появляются в отсортированной последовательности в том же порядке, что и в исходной.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с функцией сравнения |
| Пример |
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с Ordering.
Сортировка стабильна. То есть элементы, которые равны (как определено ord.compare) появляются в том же порядке в отсортированной последовательности, что и в оригинальной.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с упорядочением |
| См. также | scala.math.Ordering Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться. |
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Проверяет, содержит ли эта последовательность данную последовательность в заданном индексе.
Примечание: Если и получаемый объект this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Возвращает scala.collection.Stepper для элементов этой коллекции.
Stepper позволяет создавать Java поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.
Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элемента этой коллекции.
Для коллекций
Int,Short,ByteилиChar, возвращается scala.collection.IntStepperДля коллекций
DoubleилиFloat, возвращается scala.collection.DoubleStepperДля коллекций
Longвозвращается scala.collection.LongStepperДля любого другого типа элементов возвращается scala.collection.AnyStepper
Обратите внимание, что этот метод переопределен в подклассах, и возвращаемый тип уточняется до S with EfficientSplit, например scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, конвертеры в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper могут быть преобразованы только в последовательные потоки.
| Унаследовано от | IterableOnce |
|---|
Источник
Суммирует элементы этой коллекции.
Примечание: для бесконечных коллекций не будет завершаться.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумма всех элементов этого набора данных относительно оператора |
| Унаследовано от | IterableOnceOps |
Исходный код
def tail: C
Остальная часть набора данных без первого элемента.
| Унаследовано от | IterableOps |
|---|
Исходный код
Итерация по хвостам этой последовательности. Первое значение будет этой последовательностью, а последнее — пустой последовательностью, а промежуточные значения — результаты последовательных применений tail.
| Возвращает | итератор по всем хвостам этой последовательности |
|---|---|
| Пример |
|
| Классы-предки | LinearSeqOps -> IterableOps |
| Унаследовано от | LinearSeqOps |
Исходный код
override def tapEach[U](f: A => U): C
Применяет функцию со побочным эффектом к каждому элементу в этом наборе данных. Строгие наборы данных будут применять f к своим элементам немедленно, а ленивые наборы данных, такие как представления и LazyLists, будут применять f к каждому элементу только в том случае и только тогда, когда этот элемент будет вычисляться, и каждый раз, когда этот элемент вычисляется.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | тот же логический набор данных, что и этот |
| Классы-предки | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
С учетом фабрики набора данных factory, преобразуйте этот набор данных в соответствующее представление для текущего типа элемента A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
Преобразование набора данных в массив.
Примечание к реализации: НЕ вызывайте Array.from из этого метода.
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
def toIndexedSeq: IndexedSeq[A]
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
| Возвращает | Этот набор данных в виде |
|---|---|
| Классы-предки | Seq -> IterableOnceOps |
| Унаследовано от | Seq |
Исходный код
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
Возвращает строковое представление объекта.
Представление по умолчанию зависит от платформы.
| Возвращает | строковое представление объекта. |
|---|---|
| Классы-предки | Seq -> Function1 -> Iterable -> Any |
| Унаследовано от | Seq |
Исходный код
| Унаследовано от | IterableOnceOps |
|---|
Исходный код
Транспонирует этот итерируемый набор данных итерируемых наборов данных в итерируемый набор данных итерируемых наборов данных.
Тип результирующего набора данных будет определяться статическим типом итерируемого набора данных. Например:
val xs = List(
Set(1, 2, 3),
Set(4, 5, 6)).transpose
// xs == List(
// List(1, 4),
// List(2, 5),
// List(3, 6))
val ys = Vector(
List(1, 2, 3),
List(4, 5, 6)).transpose
// ys == Vector(
// Vector(1, 4),
// Vector(2, 5),
// Vector(3, 6))
Примечание: Даже при применении к представлению или ленивому набору данных он всегда будет принудительно применять элементы.
| Тип параметров |
|
|---|---|
| Параметры значения |
|
| Возвращает | двумерный итерируемый набор данных итерируемых наборов данных, у которого n-я строка — n-й столбец этого итерируемого набора данных. |
| Исключения |
|
| Унаследовано от | IterableOps |
Исходный код
Попытка извлечь B из A в выражении сопоставления с образцом.
| Унаследовано от | PartialFunction |
|---|
Исходный код
override 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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пара итерируемых коллекций, содержащая первую и, соответственно, вторую половину каждой пары элементов этого итерируемого набора. |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
override 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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | тройку итерируемых коллекций, содержащую первый, второй и, соответственно, третий член каждой тройки элементов этого итерируемого набора. |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Просмотр элементов этой коллекции.
| Определяющие классы | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
Создаёт нестрогий фильтр этого итерируемого набора.
Примечание: разница между c filter p и c withFilter p в том, что первый создаёт новую коллекцию, а второй только ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.
Примечание: может возвращать разные результаты при разных запусках, если только тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | объект класса |
| Унаследовано от | IterableOps |
Исходный код
override def zip[B](that: IterableOnce[B]): CC[(A, B)]
Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора, комбинируя соответствующие элементы в парах. Если один из двух наборов длиннее другого, оставшиеся его элементы игнорируются.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый итерируемый набор, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора, комбинируя соответствующие элементы в парах. Если один из двух наборов короче другого, для расширения короче набора до длины длиннее используются элементы-заполнители.
| Параметры значения |
|
|---|---|
| Возвращает | новый набор типа |
| Унаследовано от | IterableOps |
Исходный код
override def zipWithIndex: CC[(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.2.0/scala/collection/immutable/List.html