Трейт scala.collection.immutable.StrictOptimizedSeqOps
Трейт StrictOptimizedSeqOps[+A, +CC[_], +C] extends SeqOps[A, CC, C] с StrictOptimizedSeqOps[A, CC, C] с StrictOptimizedIterableOps[A, CC, C]
Трейт, переопределяющий операции для использования строгого билдера.
| Надтипы | |
|---|---|
| Известные подтипы | 22 типа |
Конкретные методы
Исходный код
переопределение def distinctBy[B](f: A => B): C
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
|---|
Исходный код
| Классы определений | SeqOps |
|---|
Исходный код
| Классы определений | SeqOps |
|---|
Исходный код
| Классы определений | SeqOps |
|---|
Унаследованные методы
Исходный код@inline
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для concat
| Унаследовано от | IterableOps |
|---|
Исходный код@inline
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]
Псевдоним для prependedAll
| Классы определений | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Исходный код@inline
final def +:[B >: A](elem: B): CC[B]
Псевдоним для prepended.
Обратите внимание, что операторы с суффиксом :- являются правоассоциативными (см. пример). Мемоника для +: против :+: двоеточие ставится со стороны коллекции.
| Унаследовано от | SeqOps |
|---|
Исходный код@inline
final def :+[B >: A](elem: B): CC[B]
Псевдоним для appended.
Обратите внимание, что операторы с суффиксом :- являются правоассоциативными (см. пример). Мемоника для +: против :+: двоеточие ставится со стороны коллекции.
| Унаследовано от | SeqOps |
|---|
Исходный код@inline
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для appendedAll
| Унаследовано от | SeqOps |
|---|
Исходный код@inline
Добавляет все элементы этой коллекции в строковый билдер. Записанный текст состоит из строковых представлений (относительно метода 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 |
Исходный код@inline
Добавляет все элементы этой коллекции в строковый билдер с разделительной строкой. Записанный текст состоит из строковых представлений (относительно метода 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 |
Исходный код
override def appended[B >: A](elem: B): CC[B]
| Классы-предки | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Унаследовано от | StrictOptimizedSeqOps |
Исходный код
override def appendedAll[B >: A](suffix: IterableOnce[B]): CC[B]
| Классы-предки | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Унаследовано от | StrictOptimizedSeqOps |
Исходный код@throws(scala.throws.$lessinit$greater$default$1[scala.IndexOutOfBoundsException])
Получение элемента по указанному индексу. Эта операция предоставляется для удобства в Seq. Не следует предполагать, что она эффективна, если у вас нет IndexedSeq.
| Унаследовано от | SeqOps |
|---|
Исходный код
override def collect[B](pf: PartialFunction[A, B]): CC[B]
| Классы-предки | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
Находит первый элемент коллекции, для которого определена данная частичная функция, и применяет частичную функцию к нему.
Примечание: может не завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение option, содержащее результат применения pf к первому значению, для которого оно определено, или |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Итерируется по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке следования. Таким образом, "xy" и "yy" являются комбинациями длины 2 последовательности "xyy", но "yx" нет. Если существует более одного способа создания одной и той же подпоследовательности, будет возвращена только одна.
Например, "xyyy" имеет три разных способа генерации "xy" в зависимости от того, какой первый, второй или третий "y" выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трех будет выбран, является деталью реализации, которая не определена.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, который проходит по возможным n-элементным комбинациям этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Исходный код@inline
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]
| Классы-предки | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
Проверяет, содержит ли эта последовательность данное значение в качестве элемента.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Исходный код
Проверяет, содержит ли эта последовательность заданную последовательность как срез.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start максимум len элементами этой коллекции.
Копирование прекращается, когда скопированы все элементы этой коллекции, достигнут конец массива или скопировано len элементов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | количество элементов, записанных в массив |
| Примечание | Повторное использование: после вызова этого метода нужно выбросить итератор, на котором он был вызван. Использование его не определено и может быть изменено. |
| Унаследовано от | IterableOnceOps |
Исходный код@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.
Копирование прекращается, когда скопированы все элементы этой коллекции или достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | количество элементов, записанных в массив |
| Примечание | Повторное использование: после вызова этого метода нужно выбросить итератор, на котором он был вызван. Использование его не определено и может быть изменено. |
| Унаследовано от | IterableOnceOps |
Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этого набора.
Копирование завершится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Использование: после вызова этого метода итератор, на котором он был вызван, должен быть удален. Его дальнейшее использование не определено и может измениться. |
| Наследуется от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя предикату проверки.
Примечание: не завершится для наборов бесконечной длины.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Наследуется от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент этой последовательности соответствующему элементу другой последовательности, удовлетворяя предикату проверки.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Наследуется от | SeqOps |
Source
Подсчитывает количество элементов в наборе, удовлетворяющих предикату.
Примечание: не завершится для наборов бесконечной длины.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | количество элементов, удовлетворяющих предикату |
| Наследуется от | IterableOnceOps |
Source
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Наследуется от | StrictOptimizedSeqOps |
Source
def distinct: C
Выбирает все элементы этой последовательности, игнорируя дубликаты.
| Возвращаемое значение | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
|---|---|
| Наследуется от | SeqOps |
Source
| Наследуется от | IterableOps |
|---|
Исходный код
Остальная часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно избегать создания копии.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Классы-предки | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Наследуется от | StrictOptimizedIterableOps |
Исходный код
| Наследуется от | IterableOps |
|---|
Исходный код
def empty: C
Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция
| Возвращает | пустую итерируемую коллекцию типа |
|---|---|
| Наследуется от | IterableOps |
Исходный код
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры |
|
|---|---|
| Возвращает |
|
| Наследуется от | SeqOps |
Исходный код
Проверяет, выполняется ли предикат хотя бы для одного элемента этой коллекции.
Примечание: может не завершаться для бесконечно больших коллекций.
| Параметры |
|
|---|---|
| Возвращает |
|
| Наследуется от | IterableOnceOps |
Исходный код
| Классы-предки | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Наследуется от | StrictOptimizedIterableOps |
Исходный код
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Inherited from | StrictOptimizedIterableOps |
Source
Находит первый элемент коллекции, удовлетворяющий предикату, если таковой имеется.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен.
| Value parameters |
|
|---|---|
| Returns | значение типа Option, содержащее первый элемент в коллекции, удовлетворяющий |
| Inherited from | IterableOnceOps |
Source
Находит последний элемент последовательности, удовлетворяющий предикату, если таковой имеется.
Примечание: не завершится для коллекций бесконечного размера.
| Value parameters |
|
|---|---|
| Returns | значение типа Option, содержащее последний элемент в последовательности, удовлетворяющий |
| Inherited from | SeqOps |
Source
override def flatMap[B](f: A => IterableOnce[B]): CC[B]
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Inherited from | StrictOptimizedIterableOps |
Source
override def flatten[B](implicit toIterableOnce: A => IterableOnce[B]): CC[B]
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Inherited from | StrictOptimizedIterableOps |
Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Выполняет свёртку элементов этой коллекции с использованием заданного ассоциативного бинарного оператора. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективного порядка обхода.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
Примечание: не завершится для коллекций бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | результат применения оператора свёртки |
| Inherited from | IterableOnceOps |
Source
def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этой коллекции слева направо.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Источник
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции и начальному значению, справа налево.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Источник
Проверяет, выполняется ли предикат для всех элементов этой коллекции.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Источник
Применяет f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.
| Унаследовано от | IterableOnceOps |
|---|
Источник
Разбивает эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с некоторой функцией-дискриминатором.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно использоваться.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
Карта из ключей в итерируемые коллекции, при этом выполняется следующее инвариантное условие: (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 |
Источник
def head: A
Возвращает первый элемент этой итерируемой коллекции.
Примечание: может возвращать разные результаты при разных запусках, если тип коллекции не упорядочен.
| Возвращаемое значение | первый элемент этой итерируемой коллекции. |
|---|---|
| Исключения |
|
| Унаследовано от | IterableOps |
Источник
def headOption: Option[A]
Возвращает необязательный первый элемент.
Примечание: может возвращать разные результаты при разных запусках, если тип коллекции не упорядочен.
| Возвращаемое значение | первый элемент этой итерируемой коллекции, если она не пуста, |
|---|---|
| Унаследовано от | IterableOps |
Источник@deprecatedOverriding("Override indexOf(elem, from) instead - indexOf(elem) calls indexOf(elem, 0)", "2.13.0")
Находит индекс первого вхождения значения в этой последовательности.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого вхождения значения в этой последовательности после или в заданном начальном индексе.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | индекс |
| Унаследовано от | SeqOps |
Источник@deprecatedOverriding("Override indexOfSlice(that, from) instead - indexOfSlice(that) calls indexOfSlice(that, 0)", "2.13.0")
Находит первый индекс, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | первый индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс после или в заданном начальном индексе, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | первый индекс |
| Унаследовано от | SeqOps |
Источник@deprecatedOverriding("Override indexWhere(p, from) instead - indexWhere(p) calls indexWhere(p, 0)", "2.13.0")
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или в заданном начальном индексе.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | индекс |
| Унаследовано от | SeqOps |
Источник
Возвращает диапазон всех индексов этой последовательности.
Примечание: даже при применении к представлению или ленивой коллекции она всегда будет принудительно форсировать элементы.
| Возвращает | значение |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
def init: C
Начальная часть коллекции без последнего элемента.
Примечание: даже при применении к представлению или ленивой коллекции она всегда будет принудительно форсировать элементы.
| Унаследовано от | IterableOps |
|---|
Исходный код
Итерируется по начальным частям этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результатами последовательных применений init.
Примечание: даже при применении к представлению или ленивой коллекции она всегда будет принудительно форсировать элементы.
| Возвращает | итератор по всем начальным частям этой итерируемой коллекции |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Исходный код
| Классы-определения | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Унаследовано от | StrictOptimizedSeqOps |
Исходный код
Проверяет, содержит ли эта последовательность указанный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Исходный код
| Классы-определения | SeqOps -> IterableOnceOps |
|---|---|
| Унаследовано от | SeqOps |
Исходный код
override def isTraversableAgain: Boolean
| Классы-определения | IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | IterableOps |
Исходный код
def iterableFactory: IterableFactory[CC]
Объект-компаньон этой итерируемой коллекции, предоставляющий различные методы фабрики.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Унаследовано от | IterableOps |
Исходный код
Итератор может быть использован только один раз
| Унаследовано от | IterableOnce |
|---|
Исходный код
| Возвращает | Количество элементов в этой коллекции, если его можно вычислить без затрат, в противном случае — -1. Без затрат обычно означает: не требует обхода коллекции. |
|---|---|
| Унаследовано от | IterableOnce |
Исходный код
def last: A
Выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Возвращает | Последний элемент этой итерируемой коллекции. |
|---|---|
| Исключение |
|
| Унаследовано от | IterableOps |
Исходный код
Находит индекс последнего вхождения некоторого значения в этой последовательности перед или в заданном конечном индексе.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Исходный код@deprecatedOverriding("Override lastIndexOfSlice(that, end) instead - lastIndexOfSlice(that) calls lastIndexOfSlice(that, Int.MaxValue)", "2.13.0")
Находит последний индекс, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс, такой что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности |
| Унаследовано от | SeqOps |
Исходный код
Находит последний индекс до или в заданном конечном индексе, где эта последовательность содержит заданную последовательность в качестве слайса.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс |
| Унаследовано от | SeqOps |
Исходный код@deprecatedOverriding("Override lastIndexWhere(p, end) instead - lastIndexWhere(p) calls lastIndexWhere(p, Int.MaxValue)", "2.13.0")
Находит индекс последнего элемента, удовлетворяющего некоторому предикату.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс последнего элемента этой последовательности, удовлетворяющего предикату |
| Унаследовано от | SeqOps |
Источник
Находит индекс последнего элемента, удовлетворяющего некоторому предикату до или на заданном индексе конца.
Примечание: не завершит работу для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
def lastOption: Option[A]
Возвращает необязательный последний элемент.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Возвращает | последний элемент этой итерируемой коллекции$ , если она непустая, |
|---|---|
| Унаследовано от | IterableOps |
Источник
Длина (количество элементов) последовательности. size — это псевдоним для length в коллекциях Seq.
| Унаследовано от | SeqOps |
|---|
Источник
Сравнивает длину этой последовательности с размером другой Iterable.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < that.size x == 0 if this.length == that.size x > 0 if this.length > that.size Метод, реализованный здесь, не вызывает |
| Унаследовано от | SeqOps |
Источник
Сравнивает длину этой последовательности со значением проверки.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len Метод, реализованный здесь, не вызывает |
| См. также | |
| Унаследовано от | SeqOps |
Источник@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 |
|---|
Источник
override def map[B](f: A => B): CC[B]
| Классы определений | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Находит максимальный элемент.
Примечание: не завершит работу для бесконечно больших коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наибольший элемент этой коллекции с точки зрения порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не завершит работу для бесконечно больших коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наибольшим значением, измеренным функцией f с учетом порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не завершит работу для бесконечно больших коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | объект Option, содержащий первый элемент этой коллекции с наибольшим значением, измеренным функцией f с учетом порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит максимальный элемент.
Примечание: не завершит работу для бесконечно больших коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | объект Option, содержащий наибольший элемент этой коллекции с точки зрения порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не завершит работу для бесконечно больших коллекций.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | наименьший элемент этого набора относительно порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который возвращает наименьшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | первый элемент этого набора с наименьшим значением, измеренным функцией f, относительно порядка |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который возвращает наименьшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | значение типа option, содержащее первый элемент этого набора с наименьшим значением, измеренным функцией f, относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | значение типа option, содержащее наименьший элемент этого набора относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник@inline
Отображает все элементы этого набора в строке.
Делегирует в addString, который можно переопределить.
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (в соответствии с методом |
|---|---|
| Унаследовано от | IterableOnceOps |
Источник@inline
Отображает все элементы этого набора в строке, используя разделительную строку.
Делегирует в addString, который можно переопределить.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (с учётом метода |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этого набора в строке с использованием начальной, конечной и разделительных строк.
Делегирует addString, который может быть переопределён.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
Проверяет, не является ли набор пустым.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Источник
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Унаследовано от | StrictOptimizedSeqOps |
Источник
| Классы определений | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Источник
override def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])
| Классы определений | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Источник
def permutations: Iterator[C]
Итерация по различным перестановкам.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно загружаться.
| Возвращает | Итератор, который проходит по различным перестановкам этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Источник
override def prepended[B >: A](elem: B): CC[B]
| Definition Classes | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Inherited from | StrictOptimizedSeqOps |
Source
override def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]
| Definition Classes | StrictOptimizedSeqOps -> SeqOps |
|---|---|
| Inherited from | StrictOptimizedSeqOps |
Source
Перемножает элементы этой коллекции.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | произведение всех элементов этой коллекции относительно оператора |
| Унаследовано от | IterableOnceOps |
Source
def reduce[B >: A](op: (B, B) => B): B
Применяет оператор к элементам этой коллекции с использованием указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Результат применения оператора |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
def reduceLeft[B >: A](op: (B, A) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Source
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Возвращает опциональное значение результата применения бинарного оператора ко всем элементам этой коллекции слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции упорядочен или оператор ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | опциональное значение, содержащее результат |
| Унаследовано от | IterableOnceOps |
Source
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Вычисляет произведение элементов этой коллекции, если она не пуста, с помощью указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Значение типа Option, содержащее результат применения оператора reduce |
| Унаследовано от | IterableOnceOps |
Источник
def reduceRight[B >: A](op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции, слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Источник
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Выполняет бинарную операцию над всеми элементами этой коллекции, справа налево, необязательно.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип коллекции упорядочен или оператор является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение типа Option, содержащее результат |
| Унаследовано от | IterableOnceOps |
Источник
def reverse: C
Возвращает новую последовательность с элементами в обратном порядке.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычисляться.
| Возвращает | Новая последовательность со всеми элементами исходной последовательности в обратном порядке. |
|---|---|
| Унаследовано от | SeqOps |
Источник
def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
| Возвращает | итератор, возвращающий элементы этой последовательности в обратном порядке |
|---|---|
| Унаследовано от | SeqOps |
Источник
| Унаследовано от | IterableOnceOps |
|---|
Источник
Являются ли элементы этого набора такими же (и в том же порядке), что и элементы that?
| Унаследовано от | SeqOps |
|---|
Источник
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 |
Источник
Вычисляет длину самой длинной последовательности, начинающейся с некоторого индекса и чьи элементы все удовлетворяют некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с индекса |
| Унаследовано от | SeqOps |
Источник
Вычисляет длину самой длинной последовательности, начинающейся с первого элемента и чьи элементы все удовлетворяют некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с первого элемента, такой, что каждый элемент последовательности удовлетворяет предикату |
| Унаследовано от | SeqOps |
Источник
| Классы определений | SeqOps -> IterableOnceOps |
|---|---|
| Унаследовано от | SeqOps |
Источник
| Классы определений | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Источник
| Классы определений | 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 |
|---|
Source
| Унаследовано от | IterableOps |
|---|
Source
Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от разделения на части, как в `grouped`).
Возвращаемый итератор будет пустым при вызове на пустом наборе. Последний элемент, который производит итератор, может быть меньше размера окна, если исходный набор не исчерпан окном до его конца и его последний элемент не пропущен шагом перед ним.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, производящий наборы элементов размером |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Source
Группирует элементы в блоки фиксированного размера, перемещая «скользящее окно» по ним (в отличие от разделения на части, как в grouped).
Пустой набор возвращает пустой итератор, а непустой набор, содержащий меньше элементов, чем размер окна, возвращает итератор, который произведёт исходный набор в качестве единственного элемента.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, производящий наборы элементов размером |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Source
Сортирует этот набор согласно порядку, полученному из преобразования неявного порядка с помощью функции преобразования.
Примечание: не завершится для наборов бесконечного размера.
Примечание: Даже при применении к представлению или ленивому набору элементы всегда будут принудительно вычислены.
Сортировка устойчивая. То есть элементы, которые равны (как определено 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 |
Source
Сортирует этот набор согласно функции сравнения.
Примечание: не завершится для наборов бесконечного размера.
Примечание: Даже при применении к представлению или ленивому набору элементы всегда будут принудительно вычислены.
Сортировка устойчивая. То есть элементы, которые равны (как определено lt), появляются в отсортированном наборе в том же порядке, что и в исходном.
| Параметры значения |
|
|---|---|
| Возвращает | набор, состоящий из элементов этого набора, отсортированных согласно функции сравнения |
| Пример |
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
|
| Унаследовано от | SeqOps |
Source
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Source
| Классы определения | IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | IterableOps |
Source
Проверяет, содержит ли этот набор указанный набор в заданном индексе.
Примечание: Если и получаемый объект this и аргумент that являются бесконечными наборами, этот метод может не завершиться.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Source
Возвращает scala.collection.Stepper для элементов этого набора.
Stepper позволяет создавать Java-поток для работы с набором, см. scala.jdk.StreamConverters. Для наборов, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.
Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этого набора.
Для наборов
Int,Short,ByteилиChar, возвращается scala.collection.IntStepperДля наборов
DoubleилиFloat, возвращается scala.collection.DoubleStepperДля наборов
Longвозвращается scala.collection.LongStepperДля любого другого типа элементов возвращается scala.collection.AnyStepper
Обратите внимание, что этот метод переопределяется в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные Stepper могут быть преобразованы только в последовательные потоки.
| Унаследовано от | IterableOnce |
|---|
Source
Суммирует элементы этого набора.
Примечание: не завершится для наборов бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумму всех элементов этого набора по отношению к оператору |
| Унаследовано от | IterableOnceOps |
Source
def tail: C
Остальная часть набора без его первого элемента.
| Унаследовано от | IterableOps |
|---|
Source
Итерирует по хвостам этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, при этом промежуточные значения являются результатом последовательных применений tail.
| Возвращает | итератор по всем хвостам этого итерируемого набора |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Source
| Унаследовано от | IterableOps |
|---|
Source
Набор, содержащий последние n элементы этого набора.
Примечание: даже при применении к представлению или ленивому набору элементы всегда будут принудительно вычисляться.
| Классы определений | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Source
Возвращает самый длинный префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | самый длинный префикс этого итерируемого набора, элементы которого удовлетворяют предикату |
| Унаследовано от | IterableOps |
Source
override def tapEach[U](f: A => U): C
| Классы определений | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Source
При заданном фабричном методе набора factory, преобразовать этот набор в соответствующее представление для текущего типа элемента A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
| Унаследовано от | IterableOnceOps |
|---|
Source
Преобразовать набор в массив.
Примечание: НЕ вызывайте Array.from из этого метода.
| Унаследовано от | IterableOnceOps |
|---|
Source@inline
| Унаследовано от | IterableOnceOps |
|---|
Source
def toIndexedSeq: IndexedSeq[A]
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Возвращает | Этот набор в виде |
|---|---|
| Унаследовано от | IterableOnceOps |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Транспонирует этот итерируемый набор итерируемых наборов в итерируемый набор итерируемых наборов.
Тип результирующего набора будет определяться статическим типом итерируемого набора. Например:
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 |
Source
override def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])
| Классы определений | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Исходный код
override def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
| Классы определений | 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.1.1/scala/collection/immutable/StrictOptimizedSeqOps.html