Класс Accumulator.Accumulator
Аккумуляторы — это изменяемые последовательности с двумя отличительными особенностями:
Аккумулятору можно эффективно добавить другой
Существуют вручную специализированные аккумуляторы для
Int,LongиDouble, которые не упаковывают элементы
Эти две особенности делают аккумуляторы хорошим кандидатом для сбора результатов параллельной Java-потоковой обработки в коллекцию Scala. Метод расширения scala.collection.convert.StreamExtensions.StreamHasToScala.toScala для Java-потоков (доступный путем импорта scala.jdk.StreamConverters._) специализирован для аккумуляторов: они создаются параллельно, части эффективно объединяются.
Создание специализированных аккумуляторов происходит прозрачно. Как пользователь, использование объекта Accumulator в качестве фабрики автоматически создает IntAccumulator, LongAccumulator, DoubleAccumulator или AnyAccumulator в зависимости от типа элемента.
Примечание: для запуска примера запустите Scala REPL с scala -Yrepl-class-based для предотвращения тупиков, см. https://github.com/scala/bug/issues/9076.
scala> import scala.jdk.StreamConverters._
import scala.jdk.StreamConverters._
scala> def isPrime(n: Int): Boolean = !(2 +: (3 to Math.sqrt(n).toInt by 2) exists (n % _ == 0))
isPrime: (n: Int)Boolean
scala> val intAcc = (1 to 10000).asJavaParStream.filter(isPrime).toScala(scala.jdk.Accumulator)
intAcc: scala.jdk.IntAccumulator = IntAccumulator(1, 3, 5, 7, 11, 13, 17, 19, ...
scala> val stringAcc = (1 to 100).asJavaParStream.mapToObj("<>" * _).toScala(Accumulator)
stringAcc: scala.jdk.AnyAccumulator[String] = AnyAccumulator(<>, <><>, <><><>, ...
Существует две возможности для обработки элементов примитивного аккумулятора без упаковки: специализированные операции аккумулятора или интерфейс Stepper. Наиболее распространённые операции над коллекциями перегружены или переопределены в классах примитивных аккумуляторов, например, IntAccumulator.map или IntAccumulator.exists. Благодаря специализации функций Scala, intAcc.exists(x => testOn(x)) не приводит к упаковке.
Интерфейс scala.collection.Stepper предоставляет итератор-подобные hasStep и nextStep методы и специализируется для Int, Long и Double. Метод intAccumulator.stepper создаёт scala.collection.IntStepper, который возвращает элементы аккумулятора без упаковки.
Аккумуляторы могут содержать более чем Int.MaxValue элементов. У них есть метод sizeLong, который возвращает размер как Long. Обратите внимание, что некоторые операции, определённые в scala.collection.Seq, реализуются с использованием length, поэтому они не будут работать правильно для больших аккумуляторов.
Класс Accumulator — это базовый класс для совместного использования кода между AnyAccumulator (для ссылочных типов) и ручных специализаций IntAccumulator, LongAccumulator и DoubleAccumulator.
| Супертипы | 21 тип |
|---|---|
| Известные подтипы |
Конкретные методы
Исходный код
Удаляет все накопленные элементы из этого аккумулятора.
Исходный код
| Возвращает | Количество элементов в строящейся коллекции, если оно может быть вычислено недорого, иначе -1. Стандартная реализация всегда возвращает -1. |
|---|---|
| Определения классов | Growable -> IterableOnce |
Исходный код
Длина (количество элементов) изменяемой коллекции. size — псевдоним для length в коллекциях Seq.
| Определения классов | SeqOps |
|---|
Исходный код
Размер накопленной коллекции как Long.
Исходный код
Возвращает 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 |
|---|
Наследованные методы
Исходный код
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для concat
| Наследованно от | IterableOps |
|---|
Исходный код
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]
Псевдоним для prependedAll
| Definition Classes | SeqOps -> IterableOps |
|---|---|
| Inherited from | SeqOps |
Source
Псевдоним для addAll
| Inherited from | Growable |
|---|
Source
final def +:[B >: A](elem: B): CC[B]
Псевдоним для prepended.
Обратите внимание, что операторы с окончанием :- являются правоассоциативными (см. пример). Мнемоника для +: по сравнению с :+ такова: двоеточие ставится со стороны коллекции.
| Inherited from | SeqOps |
|---|
Source
Псевдоним для addOne
| Inherited from | Growable |
|---|
Source
final def :+[B >: A](elem: B): CC[B]
Псевдоним для appended
Обратите внимание, что операторы с окончанием :- являются правоассоциативными (см. пример). Мнемоника для +: по сравнению с :+ такова: двоеточие ставится со стороны коллекции.
| Inherited from | SeqOps |
|---|
Source
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]
Псевдоним для appendedAll
| Inherited from | SeqOps |
|---|
Source
Добавляет все элементы, сгенерированные IterableOnce, в эту изменяемую коллекцию.
| Value parameters |
|
|---|---|
| Returns | сама изменяемая коллекция. |
| Inherited from | Growable |
Source
Добавляет один элемент в эту изменяемую коллекцию.
| Value parameters |
|
|---|---|
| Returns | сама изменяемая коллекция |
| Inherited from | Growable |
Source
Добавляет все элементы этой коллекции в StringBuilder. Записываемый текст состоит из строковых представлений (с учетом метода toString) всех элементов этой коллекции без разделительной строки.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> val h = a.addString(b) h: StringBuilder = 1234
| Value parameters |
|
|---|---|
| Returns | StringBuilder |
| Inherited from | IterableOnceOps |
Source
Добавляет все элементы этой коллекции в StringBuilder с использованием разделительной строки. Записываемый текст состоит из строковых представлений (с учетом метода toString) всех элементов этой коллекции, разделенных строкой sep.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> a.addString(b, ", ") res0: StringBuilder = 1, 2, 3, 4
| Value parameters |
|
|---|---|
| Returns | StringBuilder |
| Inherited from | IterableOnceOps |
Source
Добавляет все элементы этой коллекции в StringBuilder с использованием начальной, конечной и разделительной строк. Записываемый текст начинается со строки start и заканчивается строкой end. Между ними строковые представления (с учетом метода toString) всех элементов этой коллекции разделяются строкой sep.
Пример:
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
scala> val b = new StringBuilder()
b: StringBuilder =
scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
| Value parameters |
|
|---|---|
| Returns | StringBuilder |
| Inherited from | IterableOnceOps |
Source
Компонует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.
Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить ее побочный эффект. Для повышения эффективности рекомендуется вместо isDefinedAt или apply использовать applyOrElse.
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | частичная функция с областью определения этой частичной функции, суженного другой частичной функцией, которая отображает аргументы |
| Inherited from | PartialFunction |
Source
override def andThen[C](k: A => C): PartialFunction[A, C]
Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.
Если тип функции в момент выполнения является PartialFunction, используется другой метод andThen (обратите внимание на его предостережения).
| Type parameters |
|
|---|---|
| Value parameters |
|
| Returns | частичная функция с областью определения этой частичной функции, возможно суженная указанной функцией, которая отображает аргументы |
| Definition Classes | PartialFunction -> Function1 |
| Inherited from | PartialFunction |
Source
def appended[B >: A](elem: B): CC[B]
Копия этой последовательности с добавленным элементом.
Примечание: не будет завершаться для бесконечно больших коллекций.
Пример:
scala> val a = List(1) a: List[Int] = List(1) scala> val b = a :+ 2 b: List[Int] = List(1, 2) scala> println(a) List(1)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следует |
| Унаследовано от | SeqOps |
Источник
def appendedAll[B >: A](suffix: IterableOnce[B]): CC[B]
Возвращает новую последовательность, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов последовательности — наиболее общий суперкласс, охватывающий типы элементов двух операндов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый набор типа |
| Унаследовано от | SeqOps |
Источник
Получить элемент по указанному индексу. Эта операция предоставляется для удобства в 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, которая открыта для переопределения в подклассе. См. Программирование на Scala, глава 28 для обсуждения и проектирования.
| Параметры значения |
|
|---|---|
| Возвращает | true, если этот экземпляр может быть равен |
| Унаследовано от | Seq |
Источник
override def clone(): C
Создать копию объекта-получателя.
По умолчанию реализация метода clone зависит от платформы.
| Возвращает | копию объекта-получателя. |
|---|---|
| Примечание | не определено SLS в качестве члена AnyRef |
| Классы определений | SeqOps -> Cloneable -> Object |
| Унаследовано от | SeqOps |
Источник
def collect[B](pf: PartialFunction[A, B]): CC[B]
Создает новый набор Iterable, применяя частичную функцию ко всем элементам этого набора Iterable, для которых функция определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый набор Iterable, полученный в результате применения заданной частичной функции |
| Унаследовано от | IterableOps |
Источник
Находит первый элемент коллекции, для которого заданная частичная функция определена, и применяет к нему частичную функцию.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение Option, содержащее pf, примененное к первому значению, для которого оно определено, или |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Источник
Итерируется по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой берутся в порядке. Таким образом, "xy" и "yy" — это комбинации длины 2 "xyy", но "yx" не является таковой. Если существует более одного способа сгенерировать ту же подпоследовательность, будет возвращен только один.
Например, "xyyy" имеет три различных способа сгенерировать "xy" в зависимости от того, какой элемент — первый, второй или третий "y" — выбран. Однако, поскольку все они идентичны, будет выбран только один. Какой из трех будет выбран, является деталью реализации, которая не определена.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, который перебирает возможные комбинации из n элементов этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Источник
Компонует другую частичную функцию k с этой частичной функцией, так что эта частичная функция применяется к результатам k.
Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить ее побочный эффект. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция с областью определения другой частичной функции, суженной этой частичной функцией, которая отображает аргументы |
| Унаследовано от | PartialFunction |
Источник
Компонует два экземпляра Function1 в новый Function1, с применением этого функционала последним.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новая функция |
| Унаследовано от | Function1 |
Источник
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]
Возвращает новую последовательность, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов последовательности — это наиболее конкретный суперкласс, охватывающий типы элементов двух операндов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новая последовательность, которая содержит все элементы этой последовательности, за которыми следуют все элементы |
| Классы определений | SeqOps -> IterableOps |
| Унаследовано от | SeqOps |
Источник
Проверяет, содержит ли эта последовательность заданное значение в качестве элемента.
Примечание: может не завершиться для последовательностей бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Источник
Проверяет, содержит ли эта последовательность заданную последовательность в качестве фрагмента.
Примечание: может не завершиться для последовательностей бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
| Унаследовано от | SeqOps |
Источник
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start не более чем len элементами из этого набора.
Копирование остановится, как только будут скопированы все элементы этого набора, или будет достигнут конец массива, или len элементов будут скопированы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | количество элементов, записанных в массив |
| Примечание | Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван. Использование его не определено и может измениться. |
| Унаследовано от | IterableOnceOps |
Источник
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этого набора.
Копирование прекратится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может быть изменено. |
| Унаследовано от | IterableOnceOps |
Источник
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs начиная с индекса start значениями из этого набора.
Копирование прекратится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | количество элементов, записанных в массив |
| Примечание | Переиспользование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может быть изменено. |
| Унаследовано от | IterableOnceOps |
Источник
Проверяет, удовлетворяет ли каждый элемент итератора этого набора соответствующему элементу другого набора, удовлетворяя предикату проверки.
Примечание: не будет завершаться для наборов бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Источник
Проверяет, удовлетворяет ли каждый элемент этой последовательности соответствующему элементу другой последовательности, удовлетворяя предикату проверки.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Подсчитывает количество элементов в наборе, которые удовлетворяют предикату.
Примечание: не будет завершаться для наборов бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | количество элементов, удовлетворяющих предикату |
| Унаследовано от | IterableOnceOps |
Источник
Вычисляет разность мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, за исключением некоторых вхождений элементов, которые также присутствуют в |
| Унаследовано от | SeqOps |
Источник
def distinct: C
Выбирает все элементы этой последовательности, игнорируя дубликаты.
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
|---|---|
| Унаследовано от | SeqOps |
Источник
def distinctBy[B](f: A => B): C
Выбирает все элементы этой последовательности, игнорируя дубликаты, как определено ==, после применения преобразующей функции f.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности без дубликатов. |
| Унаследовано от | SeqOps |
Источник
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, кроме первых |
| Унаследовано от | IterableOps |
Источник
Выбирает все элементы, кроме последних n.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, кроме последних |
| Унаследовано от | IterableOps |
Источник
Удаляет наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | наибольший суффикс этой итерируемой коллекции, первый элемент которого не удовлетворяет предикату |
| Унаследовано от | IterableOps |
Источник
def elementWise: ElementWiseExtractor[A, B]
Возвращает объект-экстрактор с методом unapplySeq, который извлекает каждый элемент из последовательных данных.
| Пример |
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
case firstChar.unlift.elementWise(c0, c1, c2) =>
println(s"$c0, $c1, $c2") // Output: f, b, b
}
|
|---|---|
| Унаследовано от | PartialFunction |
Источник
override def empty: CC[A]
Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция
| Возвращает | пустую итерируемую коллекцию типа |
|---|---|
| Классы определения | IterableFactoryDefaults -> IterableOps |
| Унаследовано от | IterableFactoryDefaults |
Источник
Проверяет, заканчивается ли эта последовательность заданной последовательностью.
Примечание: не будет завершаться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Универсальный метод равенства, определенный в AnyRef.
| Классы определения | Seq -> Equals -> Any |
|---|---|
| Унаследовано от | Seq |
Источник
Проверяет, выполняется ли предикат хотя бы для одного элемента этой коллекции.
Примечание: может не завершиться для бесконечно больших коллекций.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Источник
Выбирает все элементы этой итерируемой коллекции, которые удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новая итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, удовлетворяющих заданному предикату |
| Унаследовано от | IterableOps |
Источник
Выбирает все элементы этой итерируемой коллекции, которые не удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новую итерируемую коллекцию, содержащую все элементы этой итерируемой коллекции, которые не удовлетворяют заданному предикату |
| Унаследовано от | IterableOps |
Источник
Находит первый элемент коллекции, удовлетворяющий предикату, если таковой существует.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | значение типа Option, содержащее первый элемент в коллекции, который удовлетворяет |
| Унаследовано от | IterableOnceOps |
Источник
Находит последний элемент последовательности, удовлетворяющий предикату, если таковой существует.
Примечание: не завершится для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | значение типа Option, содержащее последний элемент в последовательности, который удовлетворяет |
| Унаследовано от | SeqOps |
Источник
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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую итерируемую коллекцию, полученную путём применения заданной функции, принимающей коллекцию |
| Унаследовано от | IterableOps |
Источник
def flatten[B](implicit asIterable: 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую итерируемую коллекцию, полученную путём конкатенации всех итерируемых коллекций элементов. |
| Унаследовано от | IterableOps |
Источник
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 |
Источник
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции и начальному значению, двигаясь справа налево.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции упорядочен или оператор ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | результат вставки |
| Унаследовано от | IterableOnceOps |
Источник
Проверяет, выполняется ли предикат для всех элементов этой коллекции.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | IterableOnceOps |
Источник
Применяет f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для улучшения вывода типов scalac.
| Унаследовано от | 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 |
Источник
def head: A
Выбирает первый элемент этой итерируемой коллекции.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Возвращает | первый элемент этой итерируемой коллекции. |
|---|---|
| Исключение |
|
| Унаследовано от | IterableOps |
Источник
def headOption: Option[A]
Возвращает первый элемент, если он существует.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Возвращает | первый элемент этой итерируемой коллекции, если она непуста, |
|---|---|
| Унаследовано от | IterableOps |
Источник
Находит индекс первого вхождения некоторого значения в этой последовательности.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого вхождения некоторого значения в этой последовательности после или на заданном начальном индексе.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершаться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Источник
Находит первый индекс после или на стартовом индексе, где эта последовательность содержит заданную последовательность как срез.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | первый индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого элемента, удовлетворяющего некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на некотором начальном индексе.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
| Унаследовано от | SeqOps |
Источник
Создаёт диапазон всех индексов этой последовательности.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | значение |
|---|---|
| Унаследовано от | SeqOps |
Источник
def init: C
Начальная часть коллекции без её последнего элемента.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Унаследовано от | IterableOps |
|---|
Источник
Итерируется по начальным частям (inits) этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результаты последовательных применений init.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | итератор по всем начальным частям (inits) этой итерируемой коллекции |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Вычисляет пересечение мультимножеств между этой последовательностью и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, которые также появляются в |
| Унаследовано от | SeqOps |
Источник
Проверяет, содержит ли эта последовательность данный индекс.
Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Источник
Проверяет, пуста ли последовательность.
Примечание: Реализации в подклассах, которые не являются многократно проходимыми, должны позаботиться о том, чтобы не потреблять элементы, когда isEmpty вызывается.
| Возвращает |
|
|---|---|
| Классы определения | SeqOps -> IterableOnceOps |
| Унаследовано от | SeqOps |
Источник
override def isTraversableAgain: Boolean
Проверяет, можно ли многократно пройтись по этой итерируемой коллекции. Всегда истинно для Iterable и ложно для Iterator, если не переопределено.
| Возвращает |
|
|---|---|
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Компаньон-объект этой изменяемой последовательности, предоставляющий различные фабричные методы.
| Примечание | При реализации пользовательского типа коллекции и уточнении |
|---|---|
| Классы определения | Seq -> Seq -> Iterable -> Iterable -> IterableOps |
| Унаследовано от | Seq |
Источник
Итератор может быть использован только один раз
| Унаследовано от | IterableOnce |
|---|
Источник
def last: A
Выбирает последний элемент.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
| Возвращает | Последний элемент этого итерируемого набора. |
|---|---|
| Выбрасывает |
|
| Унаследовано от | IterableOps |
Источник
Находит индекс последнего вхождения некоторого значения в эту последовательность до или на заданном индексе конца.
Примечание: не будет завершаться для бесконечных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | индекс |
| Унаследовано от | 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 |
Источник
Сравнивает длину этой последовательности с размером другого 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 |
Источник
final def lengthIs: SizeCompareOps
Возвращает значение класса, содержащего операции сравнения длины этой последовательности со значением теста.
Эти операции реализованы в терминах lengthCompare(Int) и позволяют использовать более удобочитаемые выражения:
this.lengthIs < len // this.lengthCompare(len) < 0 this.lengthIs <= len // this.lengthCompare(len) <= 0 this.lengthIs == len // this.lengthCompare(len) == 0 this.lengthIs != len // this.lengthCompare(len) != 0 this.lengthIs >= len // this.lengthCompare(len) >= 0 this.lengthIs > len // this.lengthCompare(len) > 0
| Унаследовано от | SeqOps |
|---|
Источник
Преобразует эту частичную функцию в обычную функцию, возвращающую Option результат.
| Возвращает | функцию, которая принимает аргумент |
|---|---|
| См. также | Function.unlift |
| Унаследовано от | PartialFunction |
Источник
def map[B](f: A => B): CC[B]
Создаёт новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новую итерируемую коллекцию, полученную путём применения заданной функции |
| Унаследовано от | IterableOps |
Источник
Строитель, полученный из этого строителя путём отображения результата с использованием f.
| Унаследовано от | Builder |
|---|
Источник
Находит наибольший элемент.
Примечание: не завершится для бесконечных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наибольший элемент этой коллекции по отношению к упорядочению |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
Примечание: не завершится для бесконечных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно упорядочения |
| Исключения |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
Примечание: не завершится для бесконечных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение option, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно упорядочения |
| Унаследовано от | IterableOnceOps |
Источник
Находит наибольший элемент.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение опции, содержащей наибольший элемент этой коллекции относительно упорядочения |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | наименьший элемент этой коллекции относительно упорядочения |
| Исключение |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наименьшее значение, измеряемое функцией f.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно упорядочения |
| Исключение |
|
| Унаследовано от | IterableOnceOps |
Источник
Находит первый элемент, который дает наименьшее значение, измеряемое функцией f.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение опции, содержащей первый элемент этой коллекции с наименьшим значением, измеренным функцией f, относительно упорядочения |
| Унаследовано от | IterableOnceOps |
Источник
Находит наименьший элемент.
Примечание: не будет завершаться для коллекций бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение опции, содержащей наименьший элемент этой коллекции относительно упорядочения |
| Унаследовано от | IterableOnceOps |
Источник
Отображает все элементы этой коллекции в строке.
Делегирует вызов addString, который можно переопределить.
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (относительно метода |
|---|---|
| Унаследовано от | IterableOnceOps |
Исходный код
Отображает все элементы этого набора в строке с использованием разделителя.
Делегирует вызов addString, который можно переопределить.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. В результирующей строке строковые представления (относительно метода |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
Отображает все элементы этого набора в строке с использованием начальной, конечной и разделительной строк.
Делегирует вызов addString, который можно переопределить.
| Параметры значения |
|
|---|---|
| Возвращает | строковое представление этого набора. Результирующая строка начинается со строки |
| Пример |
|
| Унаследовано от | IterableOnceOps |
Исходный код
protected def newSpecificBuilder: Builder[A, CC[A]]
| Возвращает | строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализация этого метода возможна, но результирующий |
|---|---|
| Примечание |
При реализации пользовательского типа коллекции и уточнении Как видно из аннотации |
| Унаследовано от | IterableFactoryDefaults |
Исходный код
Проверяет, не пуста ли коллекция.
| Возвращает |
|
|---|---|
| Унаследовано от | IterableOnceOps |
Исходный код
Компонует эту частичную функцию с резервной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | частичная функция, областью определения которой является объединение областей определения этой частичной функции и |
| Унаследовано от | PartialFunction |
Исходный код
Копия этой последовательности с добавленными элементами, пока не будет достигнута заданная целевая длина.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, состоящая из всех элементов этой последовательности, за которыми следуют минимальное количество повторений |
| Унаследовано от | SeqOps |
Исходный код
Пара, содержащая, во-первых, все элементы, удовлетворяющие предикату p, и, во-вторых, все элементы, которые не удовлетворяют ему. Интересно, потому что разделяет коллекцию на две части.
Установленная здесь реализация требует двух проходов по коллекции. Строгие коллекции имеют переопределенный метод partition в StrictOptimizedIterableOps, который требует только одного прохода.
| Унаследовано от | IterableOps |
|---|
Исходный код
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])
Применяет функцию f к каждому элементу итерационной коллекции и возвращает пару итерационных коллекций: первая содержит значения, возвращённые f и обернутые в scala.util.Left, а вторая — значения, обернутые в scala.util.Right.
Пример:
val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
case i: Int => Left(i)
case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пару итерационных коллекций: первая содержит значения, возвращённые |
| Унаследовано от | IterableOps |
Исходный код
Создает новую последовательность, где фрагмент элементов в этой последовательности заменяется другой последовательностью.
Замена по отрицательным индексам аналогична замене, начинающейся с 0. Замена по индексам, равным или большим длины исходной последовательности, добавляет замену в конец. Если заменяемых значений больше, чем фактически существует, избыток игнорируется.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая последовательность, содержащая все элементы этой последовательности, за исключением элементов, начиная с |
| Унаследовано от | SeqOps |
Исходный код
def permutations: Iterator[C]
Итерируется по различным перестановкам.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.
| Возвращает | Итератор, который проходит по различным перестановкам этой последовательности. |
|---|---|
| Пример |
|
| Унаследовано от | SeqOps |
Исходный код
def prepended[B >: A](elem: B): CC[B]
Копия последовательности с добавленным элементом в начало.
Также исходная последовательность не изменяется, поэтому вам нужно будет сохранить результат.
Пример:
scala> val x = List(1) x: List[Int] = List(1) scala> val y = 2 +: x y: List[Int] = List(2, 1) scala> println(x) List(1)
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая последовательность, состоящая из |
| Унаследовано от | SeqOps |
Исходный код
def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]
Как и :++, возвращает новую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда.
Она отличается от :++ тем, что правый операнд определяет тип результирующей коллекции, а не левый. Мемоническое правило: двоеточие стоит со стороны типа новой коллекции.
| Тип параметров |
|
|---|---|
| Параметры значений |
|
| Возвращает | новая последовательность, содержащая все элементы |
| Унаследовано от | 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 |
Source
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Применяет бинарный оператор ко всем элементам этой коллекции, двигаясь справа налево.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | значение option, содержащее результат |
| Унаследовано от | IterableOnceOps |
Source
def result(): To
Коллекция результатов, состоящая из всех добавленных до сих пор элементов.
| Унаследовано от | Builder |
|---|
Source
def reverse: C
Возвращает новую последовательность с элементами в обратном порядке.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычислены.
| Возвращает | Новая последовательность со всеми элементами этой последовательности в обратном порядке. |
|---|---|
| Унаследовано от | SeqOps |
Source
def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.
| Возвращает | итератор, возвращающий элементы этой последовательности в обратном порядке |
|---|---|
| Унаследовано от | SeqOps |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Комбинирует эту частичную функцию с функцией действия, которая применяется к результатам этой частичной функции. Функция действия вызывается только для побочных эффектов; её результат игнорируется.
Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно
if(pf isDefinedAt x) { action(pf(x)); true } else false
кроме того, что runWith реализована через applyOrElse и, следовательно, потенциально более эффективна. Использование runWith позволяет избежать двойного вычисления совпадений шаблонов и условий для литералов частичных функций.
| Параметры значения |
|
|---|---|
| Возвращает | функция, которая отображает аргументы |
| См. также |
|
| Унаследовано от | PartialFunction |
Source
Являются ли элементы этой коллекции одинаковыми (и в том же порядке) что и элементы that?
| Унаследовано от | SeqOps |
|---|
Source
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]
Вычисляет префиксный сдвиг элементов коллекции.
Примечание: нейтральный элемент z может применяться более одного раза.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая итерируемая коллекция, содержащая префиксный сдвиг элементов в этой итерируемой коллекции |
| Унаследовано от | IterableOps |
Source
def scanLeft[B](z: B)(op: (B, A) => B): CC[B]
Создает итерируемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Унаследовано от | IterableOps |
Source
def scanRight[B](z: B)(op: (A, B) => B): CC[B]
Создает коллекцию, содержащую кумулятивные результаты применения оператора справа налево. Голова коллекции — это последний кумулятивный результат.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычислены.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | коллекция с промежуточными результатами |
| Унаследовано от | IterableOps |
Source
Поиск в заданном интервале в этой отсортированной последовательности определенного элемента. Если эта последовательность является IndexedSeq, используется бинарный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.
| Параметры значения |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Примечание | Если |
| Унаследовано от | SeqOps |
Source
Поиск этого отсортированной последовательности определенного элемента. Если последовательность является IndexedSeq, используется бинарный поиск. В противном случае используется линейный поиск.
Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.
| Параметры значения |
|
|---|---|
| Возвращает | значение |
| См. также |
scala.collection.SeqOps, метод |
| Унаследовано от | SeqOps |
Исходный код
Вычисляет длину самой длинной последовательности, которая начинается с определенного индекса и все элементы которой удовлетворяют некоторому предикату.
Примечание: может не завершиться для коллекций бесконечного размера.
| Параметры значения |
|
|---|---|
| Возвращает | длину самой длинной последовательности этой последовательности, начинающейся с индекса |
| Унаследовано от | 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 |
Исходный код
Указывает, что ожидается, что размер этого билдера будет иметь тот же размер, что и заданная коллекция, плюс некоторое значение delta. Это обеспечит подсказку только в том случае, если у коллекции известен размер. Некоторые классы билдеров оптимизируют свою структуру на основе подсказки. Однако реализации билдера все равно должны работать корректно, даже если подсказка неверна, то есть добавлено другое количество элементов.
| Параметры значения |
|
|---|---|
| Унаследовано от | Builder |
Исходный код
Указывает, сколько элементов ожидается добавить при вызове следующего result. Некоторые классы билдеров оптимизируют свою структуру на основе подсказки. Однако реализации билдера все равно должны работать корректно, даже если подсказка неверна, то есть добавлено другое количество элементов.
| Параметры значения |
|
|---|---|
| Унаследовано от | Builder |
Исходный код
Указывает, сколько элементов ожидается добавить при вызове следующего result, вместе с верхней границей, заданной размером другой коллекции. Некоторые классы билдеров оптимизируют свою структуру на основе подсказки. Однако реализации билдера все равно должны работать корректно, даже если подсказка неверна, то есть добавлено другое количество элементов.
| Параметры значения |
|
|---|---|
| Унаследовано от | Builder |
Исходный код
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
Примечание: могут быть получены разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемый набор, содержащий элементы, большие или равные индексу |
| Унаследовано от | IterableOps |
Источник
Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» над ними (в отличие от их разбиения, как это делается в grouped.)
Возвращаемый итератор будет пустым при вызове на пустом наборе. Последний элемент, который производит итератор, может быть меньше размера окна, если исходный набор не исчерпан окном перед ним, и его последний элемент не пропущен шагом перед ним.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, производящий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» над ними (в отличие от их разбиения, как это делается в grouped.)
Пустой набор возвращает пустой итератор, а ненулевой набор, содержащий меньше элементов, чем размер окна, возвращает итератор, который будет производить исходный набор в качестве единственного элемента.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, производящий итерируемые наборы размера |
| См. также | scala.collection.Iterator, метод |
| Пример |
|
| Унаследовано от | IterableOps |
Источник
Сортирует эту последовательность в соответствии с упорядочением, полученным в результате преобразования неявного упорядочения с функцией преобразования.
Примечание: не будет завершаться для бесконечных наборов.
Примечание: даже при применении к представлению или ленивому набору, он всегда будет принудительно использовать элементы.
Сортировка стабильна. То есть элементы, которые равны (как определяется ord.compare), появляются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с упорядочением, где |
| См. также | |
| Пример |
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с функцией сравнения.
Примечание: не будет завершаться для бесконечных наборов.
Примечание: даже при применении к представлению или ленивому набору, он всегда будет принудительно использовать элементы.
Сортировка стабильна. То есть элементы, которые равны (как определяется lt), появляются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с функцией сравнения |
| Пример |
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
|
| Унаследовано от | SeqOps |
Источник
Сортирует эту последовательность в соответствии с упорядочением.
Сортировка стабильна. То есть элементы, которые равны (как определяется ord.compare), появляются в отсортированной последовательности в том же порядке, что и в оригинале.
| Параметры значения |
|
|---|---|
| Возвращает | последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с упорядочением |
| См. также | scala.math.Ordering Примечание: даже при применении к представлению или ленивому набору, он всегда будет принудительно использовать элементы. |
| Унаследовано от | SeqOps |
Источник
Разделяет этот итерируемый набор на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты для разных запусков, если только тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пару, состоящую из самого длинного префикса этого итерируемого набора, чьи элементы удовлетворяют |
| Унаследовано от | IterableOps |
Источник
Разделяет этот итерируемый набор на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: может возвращать разные результаты для разных запусков, если только тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | пару итерируемых наборов, состоящую из первых |
| Классы определений | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Источник
Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.
Примечание: Если и получающий объект this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Унаследовано от | SeqOps |
Source
Суммирует элементы этого набора.
Примечание: не завершится для наборов бесконечного размера.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | сумма всех элементов этого набора по отношению к оператору |
| Унаследовано от | IterableOnceOps |
Source
def tail: C
Остальная часть набора без его первого элемента.
| Унаследовано от | IterableOps |
|---|
Source
Итерируется по хвостам этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, а промежуточные значения будут результатом последовательных применений tail.
| Возвращает | итератор по всем хвостам этого итерируемого набора |
|---|---|
| Пример |
|
| Унаследовано от | IterableOps |
Source
Выбирает первые n элементов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемый набор, содержащий только первые |
| Унаследовано от | IterableOps |
Source
Выбирает последние n элементов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | итерируемый набор, содержащий только последние |
| Унаследовано от | IterableOps |
Source
Возвращает самый длинный префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | самый длинный префикс этого итерируемого набора, элементы которого удовлетворяют предикату |
| Унаследовано от | IterableOps |
Source
override def tapEach[U](f: A => U): C
Применяет функцию с побочным эффектом к каждому элементу в этом наборе. Строгие наборы немедленно применяют f к своим элементам, в то время как ленивые наборы, такие как представления и LazyLists, применяют f к каждому элементу только при его вычислении, и каждый раз, когда этот элемент вычисляется.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | тот же логический набор, что и этот |
| Классы определения | IterableOps -> IterableOnceOps |
| Унаследовано от | IterableOps |
Source
Используя фабрику наборов factory, преобразовать этот набор в соответствующее представление для текущего типа элементов A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
| Унаследовано от | IterableOnceOps |
|---|
Source
Преобразовать набор в массив.
Примечание реализации: НЕ вызывайте Array.from из этого метода.
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
def toIndexedSeq: IndexedSeq[A]
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
| Возвращает | Этот набор в виде |
|---|---|
| Унаследовано от | IterableOnceOps |
Source
| Унаследовано от | IterableOnceOps |
|---|
Source
Возвращает строковое представление объекта.
По умолчанию представление зависит от платформы.
| Возвращает | строковое представление объекта. |
|---|---|
| Классы определения | Seq -> Function1 -> Iterable -> Any |
| Унаследовано от | Seq |
Источник
| Унаследовано от | IterableOnceOps |
|---|
Источник
Транспонирует это итерируемое множество итерируемых множеств в итерируемое множество итерируемых множеств.
Тип результирующего множества будет определяться статическим типом итерируемого множества. Например:
val xs = List(
Set(1, 2, 3),
Set(4, 5, 6)).transpose
// xs == List(
// List(1, 4),
// List(2, 5),
// List(3, 6))
val ys = Vector(
List(1, 2, 3),
List(4, 5, 6)).transpose
// ys == Vector(
// Vector(1, 4),
// Vector(2, 5),
// Vector(3, 6))
Примечание: даже при применении к представлению или ленивому множеству элементы всегда будут принудительно вычисляться.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | двумерное итерируемое множество итерируемых множеств, в котором n-я строка является n-м столбцом этого итерируемого множества. |
| Исключения |
|
| Унаследовано от | IterableOps |
Источник
Попытка извлечь B из A в выражении сопоставления с образцом.
| Унаследовано от | PartialFunction |
|---|
Источник
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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пара итерируемых множеств, содержащая первую, соответственно вторую половину каждой пары элементов этого итерируемого множества. |
| Унаследовано от | IterableOps |
Источник
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
Преобразует это итерируемое множество троек в три множества первого, второго и третьего элемента каждой тройки.
val xs = Iterable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three),
// Iterable(1, 2, 3))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | тройка итерируемых множеств, содержащая первый, второй, соответственно третий член каждой тройки элементов этого итерируемого множества. |
| Унаследовано от | IterableOps |
Источник
Заменяет элемент по заданному индексу новым значением.
| Параметры значения |
|
|---|---|
| Исключения |
|
| Унаследовано от | SeqOps |
Источник
Копия этого последовательности с одним заменённым элементом.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая последовательность, являющаяся копией этой последовательности с элементом в позиции |
| Исключения |
|
| Унаследовано от | SeqOps |
Источник
Представление над элементами этого множества.
| Классы определения | SeqOps -> IterableOps |
|---|---|
| Унаследовано от | SeqOps |
Источник
Создаёт нестрогий фильтр этого итерируемого множества.
Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новое множество, а второй только ограничивает область последующих map, flatMap, foreach, и withFilter операций.
Примечание: может возвращать разные результаты для разных запусков, если только тип базового множества не упорядочен.
| Параметры значения |
|
|---|---|
| Возвращает | объект класса |
| Унаследовано от | IterableOps |
Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]
Возвращает итерируемое множество, сформированное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств длиннее другого, его оставшиеся элементы игнорируются.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новое итерируемое множество, содержащее пары, состоящие из соответствующих элементов этого итерируемого множества и |
| Унаследовано от | IterableOps |
Источник
Возвращает итерируемое множество, сформированное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств короче другого, для расширения короче до длины длиннее используются плацехолдеры.
| Параметры значения |
|
|---|---|
| Возвращает | новый набор типа |
| Унаследовано от | IterableOps |
Исходный код
def zipWithIndex: CC[(A, Int)]
Объединяет этот итерируемый набор с его индексами.
| Возвращает | новый итерируемый набор, содержащий пары, состоящие из всех элементов этого итерируемого набора, сопоставленных с их индексом. Индексы начинаются с |
|---|---|
| Пример | |
| Унаследовано от | IterableOps |
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/jdk/Accumulator.html