Класс Vector.Vector
sealed abstract class Vector[+A] extends AbstractSeq[A] with IndexedSeq[A] with IndexedSeqOps[A, Vector, Vector[A]] with StrictOptimizedSeqOps[A, Vector, Vector[A]] with IterableFactoryDefaults[A, Vector] with DefaultSerializable
Vector — это универсальная неизменяемая структура данных. Она обеспечивает произвольный доступ и обновления за время O(log n), а также очень быстрые операции добавления/удаления начала/конца (амортизированное O(1), в худшем случае O(log n)). Поскольку векторы обеспечивают хороший баланс между быстрым произвольным выбором и быстрым произвольным функциональным обновлением, они в настоящее время являются стандартной реализацией неизменяемых индексированных последовательностей.
Векторы реализованы с помощью radix-сбалансированных пальцевых деревьев шириной 32. Существует отдельный подкласс для каждого уровня (от 0 до 6, где 0 — это пустой вектор, а 6 — дерево с максимальной шириной 64 на верхнем уровне).
Выравнивание дерева: - Размер первого измерения массива может быть меньше WIDTH - В data (центральном) массиве первое измерение может иметь длину до WIDTH-2, в prefix1 и suffix1 — до WIDTH, а в других prefix и suffix массивах — до WIDTH-1 - prefix1 и suffix1 никогда не пусты - Выравнивание не пересекает основной массив данных (то есть добавление в начало никогда не затрагивает суффикс, а добавление в конец никогда не затрагивает префикс). Уровень увеличивается/уменьшается, когда затронутая сторона плюс основные данные уже полны/пусты - Все массивы выровнены по левому краю и обрезаны
В дополнение к срезам данных (prefix1, prefix2, ..., dataN, ..., suffix2, suffix1) мы храним текущее количество элементов после каждого префикса для более эффективного индексирования без необходимости обращаться ко всем префиксным массивам.
| Подтипы | 28 типов |
|---|
Конкретные методы
Исходный код
Копия этого неизменяемого набора с добавленным элементом.
Примечание: не будет завершаться для наборов бесконечного размера.
Пример:
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 -> SeqOps |
Исходный код
Определяет префикс представления toString этого объекта.
Рекомендуется возвращать имя конкретного типа коллекции, но не подклассы реализации. Например, для ListMap этот метод должен возвращать "ListMap", а не "Map" (супертип) или "Node" (подкласс реализации).
По умолчанию реализация возвращает "Iterable". Она переопределена для базовых типов коллекций "Seq", "IndexedSeq", "LinearSeq", "Buffer", "Set", "Map", "SortedSet", "SortedMap" и "View".
| Возвращает | Строковое представление, которое начинается с результата |
|---|---|
| Классы определений | Iterable |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start не более чем len элементами этого неизменяемого набора.
Копирование остановится, как только будут скопированы все элементы этого неизменяемого набора, или достигнут конец массива, или len элементов будут скопированы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | Количество элементов, записанных в массив |
| Примечание | Переиспользование: После вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование неопределенно и может измениться. |
| Классы определений | IterableOnceOps |
Исходный код
Выбирает все элементы, кроме первых n.
| Параметры значения |
|
|---|---|
| Возвращает | неизменяемый набор, состоящий из всех элементов этого неизменяемого набора, кроме первых |
| Классы определений | IndexedSeqOps -> IterableOps -> IterableOnceOps |
Source
Остальная часть коллекции без её n последних элементов. Для линейных неизменяемых коллекций это должно предотвратить создание копии.
Примечание: Даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.
| Классы определения | StrictOptimizedIterableOps -> IndexedSeqOps -> IterableOps |
|---|
Source
Применить f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.
| Классы определения | IterableOnceOps |
|---|
Source
final override def head: A
Выбирает первый элемент этой неизменяемой коллекции.
| Возвращает | первый элемент этой неизменяемой коллекции. |
|---|---|
| Исключение |
|
| Классы определения | IndexedSeqOps -> IterableOps |
Source
Начальная часть коллекции без последнего элемента.
Примечание: Даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.
| Классы определения | IterableOps |
|---|
Source
Объект-компаньон этой неизменяемой коллекции, предоставляющий различные методы фабрики.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Классы определения | IndexedSeq -> IndexedSeq -> Seq -> Iterable -> Seq -> Iterable -> IterableOps |
Source
Итератор можно использовать только один раз
| Классы определения | IndexedSeqOps -> IterableOnce |
|---|
Source
final override def last: A
Выбирает последний элемент.
| Возвращает | Последний элемент этой неизменяемой коллекции. |
|---|---|
| Исключение |
|
| Классы определения | IndexedSeqOps -> IterableOps |
Source
Длина (количество элементов) неизменяемой коллекции. size является псевдонимом для length в коллекциях Seq.
| Классы определения | SeqOps |
|---|
Source
Копия неизменяемой коллекции с добавленным элементом в начало.
Кроме того, исходная неизменяемая коллекция не изменяется, поэтому вам нужно будет сохранить результат.
Пример:
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 -> IndexedSeqOps -> SeqOps |
Source
Как и :++, возвращает новую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда.
Это отличается от :++ тем, что правый операнд определяет тип результирующей коллекции, а не левый. Мнемоника: двоеточие стоит со стороны нового типа коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая неизменяемая коллекция, содержащая все элементы |
| Классы определения | StrictOptimizedSeqOps -> 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. Для Steppers, помеченных как scala.collection.Stepper.EfficientSplit, конвертеры в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Steppers могут быть преобразованы только в последовательные потоки.
| Классы определения | IndexedSeqOps -> IterableOnce |
|---|
Source
Остальная часть коллекции без первого элемента.
| Классы определения | IterableOps |
|---|
Source
Выбирает первые n элементов.
| Параметры значения |
|
|---|---|
| Возвращает | неизменяемая коллекция, содержащая только первые |
| Классы определения | IndexedSeqOps -> IterableOps -> IterableOnceOps |
Source
Коллекция, содержащая последние n элементов этой коллекции.
Примечание: Даже при применении к представлению или ленивой коллекции, она всегда будет принудительно вычислять элементы.
| Классы определения | StrictOptimizedIterableOps -> IndexedSeqOps -> IterableOps |
|---|
Source
| Классы определения | IterableOnceOps |
|---|
Source
Копия этой неизменяемой коллекции с одним заменённым элементом.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая неизменяемая коллекция, являющаяся копией этой неизменяемой коллекции с элементом в позиции |
| Исключения |
|
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
Наследуемые методы
Source
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для concat
| Наследуется от | IterableOps |
|---|
Source
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]
Псевдоним для prependedAll
| Классы определения | SeqOps -> IterableOps |
|---|---|
| Наследуется от | SeqOps |
Source
final def +:[B >: A](elem: B): CC[B]
Псевдоним для prepended.
Обратите внимание, что операторы с окончанием :- являются правоассоциативными (см. пример). Мемоническое правило для +: против :+: двоеточие ставится со стороной коллекции.
| Наследуется от | SeqOps |
|---|
Source
final def :+[B >: A](elem: B): CC[B]
Псевдоним для appended
Обратите внимание, что операторы с окончанием :- являются правоассоциативными (см. пример). Мемоническое правило для +: против :+: двоеточие ставится со стороной коллекции.
| Наследуется от | SeqOps |
|---|
Source
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для appendedAll
| Наследуется от | SeqOps |
|---|
Source
Добавляет все элементы этой коллекции в строковый билдер. Записываемый текст состоит из строковых представлений (в соответствии с методом 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 |
Source
Добавляет все элементы этой коллекции в строковый билдер с использованием разделительной строки. Записываемый текст состоит из строковых представлений (в соответствии с методом 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 |
Source
Добавляет все элементы этой коллекции в строковый билдер с использованием начальной, конечной и разделительных строк. Записываемый текст начинается со строки 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 |
Source
Композирует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.
Обратите внимание, что вызов isDefinedAt на полученной частичной функции может применить первую частичную функцию и выполнить её побочный эффект. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения этой частичной функции, суженной другой частичной функцией, которая отображает аргументы |
| Наследуется от | PartialFunction |
Source
override def andThen[C](k: A => C): PartialFunction[A, C]
Композирует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
Если тип функции во время выполнения является PartialFunction, то используется другой метод andThen (обратите внимание на предостережения).
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | частичная функция с областью определения этой частичной функции, возможно, суженной указанной функцией, которая отображает аргументы |
| Определяющие классы | PartialFunction -> Function1 |
| Унаследовано от | PartialFunction |
Источник
Получение элемента по указанному индексу. Эта операция предоставляется для удобства в Seq. Не следует полагать, что она эффективна, если у вас нет IndexedSeq.
| Унаследовано от | SeqOps |
|---|
Источник
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1
Применяет эту частичную функцию к данному аргументу, когда он содержится в области определения функции. Применяет функцию по умолчанию, когда частичная функция не определена.
Обратите внимание, что выражение pf.applyOrElse(x, default) эквивалентно
if(pf isDefinedAt x) pf(x) else default(x)
за исключением того, что метод applyOrElse может быть реализован более эффективно. Для всех частичных функций-литералов компилятор генерирует реализацию applyOrElse, которая избегает двойного вычисления совпадений шаблонов и условий. Это делает applyOrElse основой для эффективной реализации во многих операциях и сценариях, таких как:
- объединение частичных функций в orElse/andThen цепочки не приводит к чрезмерному apply/isDefinedAt вычислению - lift и unlift не вычисляют исходные функции дважды при каждом вызове - runWith позволяет эффективно объединять частичные функции в императивном стиле с условными действиями
Для классов частичных функций, которые не являются литералами и имеют нетривиальный метод isDefinedAt, рекомендуется переопределить applyOrElse с настраиваемой реализацией, которая избегает двойного isDefinedAt вычисления. Это может привести к лучшей производительности и более предсказуемому поведению с точки зрения побочных эффектов.
| Параметры значений |
|
|---|---|
| Возвращает | результат применения этой функции или функции по умолчанию. |
| Унаследовано от | PartialFunction |
Источник
Метод, который должен вызываться из каждой хорошо спроектированной функции equals, которая может быть переопределена в подклассе. См. Programming in Scala, Chapter 28 для обсуждения и проектирования.
| Параметры значений |
|
|---|---|
| Возвращает | true, если этот экземпляр может быть равен |
| Определяющие классы | IndexedSeq -> Seq -> Equals |
| Унаследовано от | IndexedSeq |
Источник
override def collect[B](pf: PartialFunction[A, B]): CC[B]
Создает новую коллекцию итерируемых элементов, применяя частичную функцию ко всем элементам этой итерируемой коллекции, для которых функция определена.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая итерируемая коллекция, полученная в результате применения заданной частичной функции |
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Source
Находит первый элемент коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение option, содержащее результат применения pf к первому значению, для которого она определена, или |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Source
Перебирает комбинации. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке следования. Таким образом, "xy" и "yy" — это комбинации длины 2 из "xyy", но "yx" — нет. Если существует более одного способа сгенерировать одну и ту же подпоследовательность, будет возвращена только одна.
Например, "xyyy" имеет три разных способа сгенерировать "xy" в зависимости от того, какой первый, второй или третий "y" был выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трех будет выбран, является деталью реализации, которая не определена.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, который проходит по возможным комбинациям из n элементов этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Source
Компонует другую частичную функцию 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 |
Исходный код
Проверяет, содержит ли эта последовательность заданное значение в качестве элемента.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Исходный код
Проверяет, содержит ли эта последовательность заданную последовательность в качестве фрагмента.
Примечание: может не завершиться для бесконечных коллекций.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.
Копирование прекратится, как только будут скопированы все элементы этой коллекции или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Исходный код
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.
Копирование прекратится, как только будут скопированы все элементы этой коллекции или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование неопределено и может измениться. |
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя предикату проверки.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Унаследовано от | IterableOnceOps |
Source
Проверяет, соответствует ли каждый элемент этой последовательности соответствующему элементу другой последовательности, удовлетворяя предикату проверки.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Source
Подсчитывает количество элементов в коллекции, удовлетворяющих предикату.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | количество элементов, удовлетворяющих предикату |
| Унаследовано от | IterableOnceOps |
Source
Вычисляет разность множеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | новая последовательность, которая содержит все элементы этой последовательности за исключением некоторых вхождений элементов, которые также встречаются в |
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Source
def distinct: C
Выбирает все элементы этой последовательности, игнорируя дубликаты.
| Возвращаемое значение | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
|---|---|
| Унаследовано от | SeqOps |
Source
override def distinctBy[B](f: A => B): C
Выбирает все элементы этой последовательности, игнорируя дубликаты, определяемые == после применения преобразовательной функции f.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
| Definition Classes | StrictOptimizedSeqOps -> StrictOptimizedSeqOps -> SeqOps |
| Inherited from | StrictOptimizedSeqOps |
Source
Удаляет наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора данных не упорядочен.
| Value parameters |
|
|---|---|
| Returns | наибольший суффикс этого итерируемого набора данных, первый элемент которого не удовлетворяет предикату |
| Inherited from | IterableOps |
Source
def elementWise: ElementWiseExtractor[A, B]
Возвращает объект экстрактора с методом unapplySeq, который извлекает каждый элемент данных последовательности.
| Example |
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
}
|
|---|---|
| Inherited from | PartialFunction |
Source
override def empty: CC[A]
Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция
| Returns | пустая итерируемая коллекция типа |
|---|---|
| Definition Classes | IterableFactoryDefaults -> IterableOps |
| Inherited from | IterableFactoryDefaults |
Source
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не завершится для бесконечно больших коллекций.
| Value parameters |
|
|---|---|
| Returns |
|
| Inherited from | SeqOps |
Source
Универсальный метод равенства, определенный в AnyRef.
| Definition Classes | Seq -> Equals -> Any |
|---|---|
| Inherited from | Seq |
Source
Проверяет, выполняется ли предикат хотя бы для одного элемента этой коллекции.
Примечание: может не завершиться для бесконечно больших коллекций.
| Value parameters |
|
|---|---|
| Returns |
|
| Inherited from | IterableOnceOps |
Source
Отбирает все элементы этой итерируемой коллекции, которые удовлетворяют предикату.
| Value parameters |
|
|---|---|
| Returns | новая итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, которые удовлетворяют заданному предикату |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Inherited from | StrictOptimizedIterableOps |
Source
Отбирает все элементы этой итерируемой коллекции, которые не удовлетворяют предикату.
| Value parameters |
|
|---|---|
| Returns | новая итерируемая коллекция, содержащая все элементы этой итерируемой коллекции, не удовлетворяющие заданному предикату |
| 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]
Создаёт новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции и используя элементы полученных коллекций.
Например:
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)
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | новая итерируемая коллекция, полученная путём применения заданной функции, возвращающей коллекцию |
| Definition Classes | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Inherited from | StrictOptimizedIterableOps |
Source
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, но может быть переопределена для более эффективных порядков обхода.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат применения оператора сложения |
| Унаследовано от | IterableOnceOps |
Исходный код
def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этой коллекции слева направо.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Исходный код
override def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой последовательности и начальному значению, двигаясь справа налево.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Определяющие классы | IndexedSeqOps -> IterableOnceOps |
| Унаследовано от | IndexedSeqOps |
Исходный код
Проверяет, выполняется ли предикат для всех элементов этой коллекции.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Исходный код
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 |
Источник
override def headOption: Option[A]
Возвращает первый элемент, если он существует.
| Возвращает | первый элемент этой последовательности, если она непустая, |
|---|---|
| Классы определения | IndexedSeqOps -> IterableOps |
| Унаследовано от | IndexedSeqOps |
Источник
Находит индекс первого вхождения значения в этой последовательности.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого вхождения значения в этой последовательности после или в указанном стартовом индексе.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Source
Находит первый индекс после или на стартовом индексе, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Source
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Source
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на некотором стартовом индексе.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Source
Создаёт диапазон всех индексов этой последовательности.
Примечание: Даже при применении к представлению или ленивой коллекции, она всегда заставит элементы.
| Возвращает | значение |
|---|---|
| Унаследовано от | SeqOps |
Source
Итерирует по начальным частям этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, а промежуточные значения — результаты последовательных применений init.
Примечание: Даже при применении к представлению или ленивой коллекции, она всегда заставит элементы.
| Возвращает | итератор по всем начальным частям этого итерируемого набора |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Source
Вычисляет пересечение мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, которые также присутствуют в |
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Проверяет, содержит ли эта последовательность заданный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Проверяет, пуста ли последовательность.
Примечание: Реализации в дочерних классах, которые не являются многократно проходимыми, должны позаботиться о том, чтобы не потреблять какие-либо элементы при вызове isEmpty.
| Возвращает |
|
|---|---|
| Классы определения | SeqOps -> IterableOnceOps |
| Унаследовано от | SeqOps |
Источник
override def isTraversableAgain: Boolean
Проверяет, можно ли многократно пройти по этому итерируемому набору. Всегда true для Iterable и false для Iterator, если не переопределено.
| Возвращает |
|
|---|---|
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
| Возвращает | Количество элементов в этой последовательности, если его можно вычислить без затрат, -1 в противном случае. Без затрат обычно означает: не требующее обхода коллекции. |
|---|---|
| Классы определения | IndexedSeqOps -> IterableOnce |
| Унаследовано от | IndexedSeqOps |
Источник
Находит индекс последнего вхождения некоторого значения в этой последовательности перед или на заданном индексе конца.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры типов |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит последний индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс, такой что элементы этой последовательности, начиная с этого индекса, совпадают с элементами последовательности |
| Унаследовано от | SeqOps |
Источник
Находит последний индекс перед или на заданном индексе конца, где эта последовательность содержит заданную последовательность как срез.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | последний индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс последнего элемента, удовлетворяющего некоторому предикату.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | индекс последнего элемента этой последовательности, удовлетворяющего предикату |
| Унаследовано от | SeqOps |
Источник
Находит индекс последнего элемента, удовлетворяющего некоторому предикату перед или на заданном индексе конца.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
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 |
Source
Сравнивает длину этой последовательности с размером другой Iterable.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
Значение x < 0 if this.length < that.size x == 0 if this.length == that.size x > 0 if this.length > that.size Реализация метода не вызывает |
| Классы определения | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Source
Сравнивает длину этой последовательности со значением теста.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
Значение x < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len Реализация метода не вызывает |
| См. также | |
| Классы определения | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Source
final def lengthIs: SizeCompareOps
Возвращает класс значений, содержащий операции для сравнения длины этой последовательности со значением теста.
Эти операции реализованы в терминах lengthCompare(Int) и позволяют использовать следующие более удобочитаемые выражения:
this.lengthIs < len // this.lengthCompare(len) < 0 this.lengthIs <= len // this.lengthCompare(len) <= 0 this.lengthIs == len // this.lengthCompare(len) == 0 this.lengthIs != len // this.lengthCompare(len) != 0 this.lengthIs >= len // this.lengthCompare(len) >= 0 this.lengthIs > len // this.lengthCompare(len) > 0
| Унаследовано от | SeqOps |
|---|
Source
Преобразует эту частичную функцию в обычную функцию, возвращающую результат Option.
| Возвращаемое значение | функция, которая принимает аргумент |
|---|---|
| См. также | Function.unlift |
| Унаследовано от | PartialFunction |
Source
override def map[B](f: A => B): CC[B]
Создает новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новая итерируемая коллекция, полученная путем применения заданной функции |
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Source
Находит наибольший элемент.
Примечание: не завершит работу для коллекций бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | наибольший элемент этого набора относительно порядка |
| Throws |
|
| Inherited from | IterableOnceOps |
Source
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | первый элемент этого набора с наибольшим значением, измеренным функцией f, относительно порядка |
| Throws |
|
| Inherited from | IterableOnceOps |
Source
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | значение option, содержащее первый элемент этого набора с наибольшим значением, измеренным функцией f, относительно порядка |
| Inherited from | IterableOnceOps |
Source
Находит наибольший элемент.
Примечание: не будет завершаться для наборов бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | значение option, содержащее наибольший элемент этого набора относительно порядка |
| Inherited from | IterableOnceOps |
Source
Находит наименьший элемент.
Примечание: не будет завершаться для наборов бесконечного размера.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | наименьший элемент этого набора относительно порядка |
| Throws |
|
| Inherited from | IterableOnceOps |
Source
Находит первый элемент, который дает наименьшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | первый элемент этого набора с наименьшим значением, измеренным функцией f по отношению к порядку |
| Выбрасывает |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наименьшее значение, измеренное функцией f.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | значение типа Option, содержащее первый элемент этого набора с наименьшим значением, измеренным функцией f относительно порядка |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не будет завершаться для наборов бесконечного размера.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | значение типа Option, содержащее наименьший элемент этого набора в соответствии с порядком |
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этого набора в строке.
Делегирует addString, который можно переопределить.
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (в соответствии с методом |
|---|---|
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этого набора в строке, используя разделительную строку.
Делегирует addString, который можно переопределить.
| Параметры значений |
|
|---|---|
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (в соответствии с методом |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этого набора в строке, используя начальную, конечную и разделительные строки.
Делегирует addString, который можно переопределить.
| Параметры значений |
|
|---|---|
| Возвращает | строковое представление этого набора. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
protected def newSpecificBuilder: Builder[A, CC[A]]
| Возвращает | строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализовать этот метод возможно, но полученный |
|---|---|
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как видно по аннотации |
| Унаследовано от | IterableFactoryDefaults |
Источник
Проверяет, не пуст ли набор.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Источник
Компонует эту частичную функцию с резервной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | частичная функция, область определения которой является объединением областей определения этой частичной функции и |
| Унаследовано от | PartialFunction |
Источник
Копия этой последовательности с добавленным элементом значения до тех пор, пока не будет достигнута заданная длина.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следует минимальное количество вхождений |
| Классы определений | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Пара элементов, во-первых, все элементы, удовлетворяющие предикату p, и, во-вторых, все элементы, которые не удовлетворяют ему. Интересно, потому что это разделяет коллекцию на две части.
Представленная здесь реализация по умолчанию должна пройтись по коллекции дважды. Строгие коллекции имеют переопределённую версию partition в StrictOptimizedIterableOps, которая требует только одного прохода.
| Определяющие классы | StrictOptimizedIterableOps -> IterableOps |
|---|---|
| Унаследовано от | StrictOptimizedIterableOps |
Источник
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 |
Источник
Создаёт новую последовательность, где фрагмент элементов в этой последовательности заменяется другой последовательностью.
Замена с отрицательными индексами аналогична замене, начинающейся с 0. Замена с индексами, равными или большими длины исходной последовательности, добавляет вставка в конец. Если заменяется больше элементов, чем существует, избыток игнорируется.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую последовательность, состоящую из всех элементов этой последовательности, за исключением того, что |
| Определяющие классы | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
def permutations: Iterator[C]
Итерирует по различным перестановкам.
Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены.
| Возвращает | Итератор, который обходит различные перестановки этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Источник
Перемножает элементы этой коллекции.
Примечание: не завершит работу для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | произведение всех элементов этой коллекции относительно оператора |
| Унаследовано от | IterableOnceOps |
Источник
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]
По желанию применяет бинарный оператор ко всем элементам этой коллекции слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип коллекции не упорядочен, или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение Option, содержащее результат |
| Унаследовано от | IterableOnceOps |
Источник
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 |
Источник
override def reverse: C
Возвращает новую последовательность с элементами в обратном порядке.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Новая последовательность со всеми элементами этой последовательности в обратном порядке. |
|---|---|
| Классы определений | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Источник
override def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
| Возвращает | итератор, возвращающий элементы этой последовательности в обратном порядке |
|---|---|
| Классы определений | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Источник
| Классы определений | IndexedSeqOps -> IterableOnceOps |
|---|---|
| Унаследовано от | IndexedSeqOps |
Источник
Компонует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для своих побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
за исключением того, что runWith реализуется с помощью applyOrElse и, следовательно, потенциально более эффективно. Использование runWith позволяет избежать двойной оценки совпадений с шаблонами и условий для частичных функций-литералов.
| Параметры значения |
|
|---|---|
| Возвращает | функция, которая отображает аргументы |
| См. также |
|
| Унаследовано от | PartialFunction |
Источник
Являются ли элементы этой коллекции такими же (и в том же порядке), что и у that?
| Классы определений | IndexedSeq -> SeqOps |
|---|---|
| Унаследовано от | IndexedSeq |
Источник
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, метод |
| Примечание | если |
| Классы определений | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Источник
Ищет эту отсортированную последовательность для определенного элемента. Если последовательность является IndexedSeq, используется двоичный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.
| Параметры значения |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Классы определений | IndexedSeqOps -> SeqOps |
| Унаследовано от | IndexedSeqOps |
Источник
Вычисляет длину самой длинной последовательности, которая начинается с некоторого индекса и все элементы которой удовлетворяют некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с индекса |
| Унаследовано от | SeqOps |
Источник
Вычисляет длину самой длинной последовательности, которая начинается с первого элемента и все элементы которой удовлетворяют некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с первого элемента, такой что каждый элемент последовательности удовлетворяет предикату |
| Унаследовано от | 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 |
|---|
Источник
Выбирает интервал элементов. Возвращаемая последовательность состоит из всех элементов x, которые удовлетворяют инварианту:
from <= indexOf(x) < until
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, содержащая элементы, большие или равные индексу |
| Классы определений | IndexedSeqOps -> IndexedSeqOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | IndexedSeqOps |
Источник
Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» над ними (в отличие от разбиения их на части, как это делается в 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 |
Источник
Сортирует эту последовательность в соответствии с упорядочением.
Сортировка стабильна. То есть элементы, которые равны (как определяется ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с упорядочением |
| См. также | scala.math.Ordering Примечание: даже при применении к представлению или ленивой коллекции, элементы всегда будут принудительно вычислены. |
| Классы определения | StrictOptimizedSeqOps -> SeqOps |
| Унаследовано от | StrictOptimizedSeqOps |
Источник
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пара, состоящая из самого длинного префикса этой итерируемой коллекции, элементы которой удовлетворяют |
| Классы определения | StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps |
| Унаследовано от | StrictOptimizedIterableOps |
Источник
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пара итерируемых коллекций, состоящая из первых |
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.
Примечание: Если и получающий объект this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Суммирует элементы этой коллекции.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумма всех элементов этой коллекции относительно оператора |
| Унаследовано от | IterableOnceOps |
Source
Итерирует по хвостам этого итерируемого набора коллекций. Первое значение будет этим итерируемым набором коллекций, а последнее — пустым итерируемым набором коллекций, а промежуточные значения — результатом последовательного применения tail.
| Возвращает | итератор по всем хвостам этого итерируемого набора коллекций |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Source
Возвращает самый длинный префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Параметры |
|
|---|---|
| Возвращает | самый длинный префикс этого итерируемого набора коллекций, элементы которого удовлетворяют предикату |
| Унаследовано от | IterableOps |
Source
override def tapEach[U](f: A => U): C
Применяет функцию побочного эффекта к каждому элементу в этом наборе коллекций. Строгие коллекции будут применять f к своим элементам немедленно, в то время как ленивые коллекции, такие как представления и LazyLists, будут применять f к каждому элементу только тогда, когда этот элемент будет вычислен, и каждый раз, когда этот элемент будет вычислен.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | Такая же логическая коллекция, как и эта |
| Определяющие классы | 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
| Унаследовано от | IterableOnceOps |
|---|
Source
final override def toIndexedSeq: IndexedSeq[A]
| Определяющие классы | IndexedSeq -> IterableOnceOps |
|---|---|
| Унаследовано от | IndexedSeq |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Возвращает | Этот набор коллекций в виде |
|---|---|
| Определяющие классы | Seq -> IterableOnceOps |
| Унаследовано от | Seq |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Возвращает строковое представление объекта.
Значение по умолчанию зависит от платформы.
| Возвращает | строковое представление объекта. |
|---|---|
| Определяющие классы | Seq -> Function1 -> Iterable -> Any |
| Унаследовано от | Seq |
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
Пытается извлечь B из A в выражении сопоставления с образцом.
| Унаследовано от | PartialFunction |
|---|
Source
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 |
Source
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 |
Source
override def view: IndexedSeqView[A]
Представление над элементами этой коллекции.
| Классы определений | IndexedSeqOps -> SeqOps -> IterableOps |
|---|---|
| Унаследовано от | IndexedSeqOps |
Source
Создает нестрогий фильтр этой итерируемой коллекции.
Примечание: разница между c filter p и c withFilter p заключается в том, что первый создает новую коллекцию, а второй только ограничивает область применения последующих map, flatMap, foreach, и withFilter операций.
Примечание: результаты могут отличаться для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | объект класса |
| Унаследовано от | IterableOps |
Source
override def zip[B](that: IterableOnce[B]): CC[(A, B)]
Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции путем объединения соответствующих элементов в пары. Если одна из двух коллекций длиннее другой, ее оставшиеся элементы игнорируются.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и |
| Классы определений | StrictOptimizedIterableOps -> IterableOps |
| Унаследовано от | StrictOptimizedIterableOps |
Source
Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции путем объединения соответствующих элементов в пары. Если одна из двух коллекций короче другой, для расширения более короткой коллекции до длины более длинной используются значения-заполнители.
| Параметры значения |
|
|---|---|
| Возвращает | новая коллекция типа |
| Унаследовано от | IterableOps |
Source
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/Vector.html