Spec-Zone.ru › Scala 2.13 Library

Trait scala.collection.IterableOps

Companion object IterableOps

trait IterableOps[+A, +CC[_], +C] extends IterableOnce[A] with IterableOnceOps[A, CC, C]

Базовый трайт для операций над Iterable

VarianceNote

Мы требуем, чтобы для всех дочерних классов Iterable вариативность дочернего класса и вариативность параметра C , переданного в IterableOps, были одинаковыми. Мы не можем это выразить, поскольку у нас нет вариационной полиморфизма. Поэтому в некоторых местах нам приходится прибегать к C[A @uncheckedVariance].

CC

конструктор типа коллекции (например, List, Set). Операции, возвращающие коллекцию с другим типом элементов B (например, map ), возвращают CC[B].

C

тип коллекции (например, List[Int], String, BitSet). Операции, возвращающие коллекцию с тем же типом элементов (например, drop, filter ), возвращают C.

Source
Iterable.scala
Linear Supertypes
IterableOnceOps[A, CC, C], IterableOnce[A], Any
Known Subclasses
ValueSet, AbstractIndexedSeqView, AbstractIterable, AbstractMap, AbstractMapView, AbstractSeq, AbstractSeqView, AbstractSet, AbstractView, BitSet, BitSetOps, EvidenceIterableFactoryDefaults, IndexedSeq, IndexedSeqOps, IndexedSeqView, Добавленный, Concat, Drop, DropRight, Id, Map, Предоставленный, Обратный, Срезы, Взять, ВзятьСправа, Iterable, IterableFactoryDefaults, LinearSeq, LinearSeqOps, Map, MapFactoryDefaults, MapOps, KeySet, MapView, Фильтр, FilterKeys, Id, MapValues, TapEach, Seq, SeqMap, SeqOps, SeqView, Добавленный, Concat, Drop, DropRight, Id, Map, Предоставленный, Обратный, Отсортированный, Взять, ВзятьСправа, Set, SetOps, SortedMap, SortedMapFactoryDefaults, SortedMapOps, KeySortedSet, SortedSet, SortedSetFactoryDefaults, SortedSetOps, StrictOptimizedIterableOps, StrictOptimizedLinearSeqOps, StrictOptimizedMapOps, StrictOptimizedSeqOps, StrictOptimizedSetOps, StrictOptimizedSortedMapOps, StrictOptimizedSortedSetOps, StringView, Вид, Добавленный, Собрать, Concat, DistinctBy, Drop, DropRight, DropWhile, Elems, Empty, Fill, Фильтр, FlatMap, Iterate, LeftPartitionMapped,
Map, PadTo, Prepended, RightPartitionMapped, ScanLeft, Single, Tabulate, Take, TakeRight, TakeWhile, Unfold, Updated, Zip, ZipAll, ZipWithIndex, Map, TrieMap, ::, AbstractMap, AbstractSeq, AbstractSet, ArraySeq, ofBoolean, ofByte, ofChar, ofDouble, ofFloat, ofInt, ofLong, ofRef, ofShort, ofUnit, BitSet, HashMap, HashSet, Последовательность с индексами, IndexedSeqOps, IntMap, Итерируемый, Ленивый список, Линейный список, LinearSeqOps, Список, ListMap, ListSet, Узел, LongMap, Карта, Map1, Map2, Map3, Map4, WithDefault, MapOps, ImmutableKeySet, Nil, Диапазон чисел, Исключительно, Включительно, Очередь, Диапазон, Exclusive, Inclusive, Последовательность, SeqMap, SeqOps, Множество, Set1, Set2, Set3, Set4, SetOps, Отсортированная карта, WithDefault, SortedMapOps, ImmutableKeySortedSet, Отсортированное множество, SortedSetOps, Cons, Empty,
StrictOptimizedMapOps, StrictOptimizedSeqOps, StrictOptimizedSetOps, StrictOptimizedSortedMapOps, StrictOptimizedSortedSetOps, TreeMap, TreeSeqMap, TreeSet, Vector, VectorMap, WrappedString, AbstractBuffer, AbstractIterable, AbstractMap, AbstractSeq, AbstractSet, AnyRefMap, ArrayBuffer, ArrayBufferView, ArrayDeque, ArrayDequeOps, ArraySeq, ofBoolean, ofByte, ofChar, ofDouble, ofFloat, ofInt, ofLong, ofRef, ofShort, ofUnit, BitSet, Буфер, CollisionProofHashMap, HashMap, HashSet, IndexedBuffer, IndexedSeq, IndexedSeqOps, Итерируемый, LinkedHashMap, LinkedKeySet, LinkedHashSet, ListBuffer, LongMap, Карта, WithDefault, MapOps, Мультикарта, Очередь с приоритетом, Очередь, Последовательность, SeqMap, SeqOps, Множество, SetOps, Отсортированная карта, WithDefault, SortedMapOps, Отсортированное множество, SortedSetOps, Стек, StringBuilder, TreeMap, TreeSet, UnrolledBuffer, WeakHashMap, Акумулятора, AnyAccumulator, DoubleAccumulator, IntAccumulator, LongAccumulator, SystemProperties, DefaultMap, BitSet1, BitSet2, BitSetN, Поток,
ListMap, OpenHashMap

Члены-абстрактные значения

abstract def coll: C

возвращает

Это коллекция как C.

Атрибуты
protected

abstract def fromSpecific(coll: IterableOnce[A]): C

Определяет, как преобразовать заданную Iterable[A] в коллекцию типа C.

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

Атрибуты
protected
Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, где C =:= CC[A], это можно сделать, добавив трейт IterableFactoryDefaults, который реализует метод с помощью iterableFactory.

,

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, пока он вызывается с Iterable[A], полученным из коллекции this (как это происходит в реализациях операций, где используется View[A]), он безопасен.

abstract def getClass(): Class[_ <: AnyRef]

Возвращает представление класса объекта во время выполнения.

возвращает

объект класса, соответствующий типу получателя во время выполнения.

Определения классов
Any

abstract def iterableFactory: IterableFactory[CC]

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

Примечание

При реализации пользовательского типа коллекции и уточнении CC до нового типа, этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).

abstract def iterator: Iterator[A]

Итератор может быть использован только один раз

Определения классов
IterableOnce

abstract def newSpecificBuilder: Builder[A, C]

возвращает

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, View или immutable.LazyList), реализация этого метода возможна, но полученный Builder нарушит леность. Поэтому операции предпочтительно реализовывать с помощью fromSpecific вместо этого метода.

Атрибуты
protected
Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, где C =:= CC[A], это можно сделать, добавив трейт IterableFactoryDefaults, который реализует метод с помощью iterableFactory.

,

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, пока возвращаемый билдер заполняется только значениями A, взятыми из экземпляра this, он безопасен.

abstract def toIterable: Iterable[A]

возвращает

Эта коллекция как Iterable[A]. Новая коллекция не будет создана, если this уже является Iterable[A].

Члены-значения конкретных типов

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

возвращает

true если !(this == that), иначе false.

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

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает значение хэш-кода, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## генерирует одно и то же значение хэш-кода для каждого из них. Для null возвращает хэш-код, где null.hashCode выбрасывает NullPointerException.

возвращает

значение хэш-кода, согласованное с ==

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

def +(other: String): String

Неявный
Этот член добавляется неявным преобразованием из IterableOps[A, CC, C] в any2stringadd[IterableOps[A, CC, C]] посредством метода any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

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

Аннотации
@inline()

def ->[B](y: B): (IterableOps[A, CC, C], B)

Неявный
Этот член добавляется неявным преобразованием из IterableOps[A, CC, C] в ArrowAssoc[IterableOps[A, CC, C]] посредством метода ArrowAssoc в scala.Predef.
Определяющие классы
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

true если объект-приёмник эквивалентен аргументу; false иначе.

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

final def addString(b: mutable.StringBuilder): mutable.StringBuilder

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

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> val h = a.addString(b)
h: StringBuilder = 1234
b

буфер строк, в который добавляются элементы.

возвращает

буфер строк b в который были добавлены элементы.

Определяющие классы
IterableOnceOps
Аннотации
@inline()

final def addString(b: mutable.StringBuilder, sep: String): mutable.StringBuilder

Добавляет все элементы этой коллекции в буфер строк с использованием разделительной строки. Записываемый текст состоит из строковых представлений (относительно метода toString) всех элементов этой коллекции, разделенных строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
b

буфер строк, в который добавляются элементы.

sep

разделительная строка.

возвращает

буфер строк b в который были добавлены элементы.

Определяющие классы
IterableOnceOps
Аннотации
@inline()

def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.StringBuilder

Добавляет все элементы этой коллекции в строковый буфер с использованием начальной, конечной и разделительных строк. Текст начинается со строки start и заканчивается строкой end. Внутри строковые представления (относительно метода toString) всех элементов этой коллекции разделены строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
b

строковый буфер, в который добавляются элементы.

start

начальная строка.

sep

разделительная строка.

end

конечная строка.

returns

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

Definition Classes
IterableOnceOps

final def asInstanceOf[T0]: T0

Преобразует объект-получатель к типу T0.

Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит исключение ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] этого не сделает. В последнем примере, потому что аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка требуемому типу.

returns

объект-получатель.

Definition Classes
Any
Exceptions thrown

ClassCastException, если объект-получатель не является экземпляром стирания типа T0.

def collect[B](pf: PartialFunction[A, B]): CC[B]

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

B

тип элементов возвращаемой коллекции.

pf

частичная функция, которая фильтрует и отображает коллекцию.

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

pf

частичная функция

returns

значение Option, содержащее pf, применённое к первому значению, для которого оно определено, или None если такого значения нет.

Definition Classes
IterableOnceOps
Пример:

    Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)

def concat[B >: A](suffix: IterableOnce[B]): CC[B]

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

B

тип элементов возвращаемой коллекции.

suffix

перебираемая коллекция для добавления.

returns

новая коллекция, которая содержит все элементы этой коллекции, за которыми следуют все элементы suffix.

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

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

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

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

B

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

xs

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

start

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

len

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

returns

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

Definition Classes
IterableOnceOps
Note

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

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

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

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

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

B

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

xs

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

start

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

returns

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

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

def copyToArray[B >: A](xs: Array[B]): Int

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

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

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

B

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

xs

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

returns

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

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

def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

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

B

тип элементов that

that

другая коллекция

p

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

returns

true если обе коллекции имеют одинаковую длину и p(x, y) есть true для всех соответствующих элементов x этого итератора и y из that, иначе false

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

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

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

p

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

returns

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

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

def drop(n: Int): C

Выбирает все элементы, кроме первых n.

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

n

количество элементов для удаления из этой итерируемой коллекции.

returns

итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, за исключением первых n элементов, или пустая итерируемая коллекция, если эта итерируемая коллекция содержит менее n элементов. Если n отрицательно, не удаляйте элементы.

Определяющие классы
IterableOps → IterableOnceOps
Примечание

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

def dropRight(n: Int): C

Выбирает все элементы, кроме последних n.

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

n

количество элементов для удаления из этой итерируемой коллекции.

returns

итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, за исключением последних n элементов, или пустая итерируемая коллекция, если эта итерируемая коллекция содержит менее n элементов. Если n отрицательно, не удаляйте элементы.

def dropWhile(p: (A) => Boolean): C

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

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

p

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

returns

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

Определяющие классы
IterableOps → IterableOnceOps
Примечание

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

def empty: C

Пустая итерируемая коллекция того же типа, что и эта итерируемая

returns

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

def ensuring(cond: (IterableOps[A, CC, C]) => Boolean, msg: => Any): IterableOps[A, CC, C]

Неявное
Этот член добавлен неявным преобразованием из IterableOps[A, CC, C] кEnsuring[IterableOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Классы-определения
Ensuring

def ensuring(cond: (IterableOps[A, CC, C]) => Boolean): IterableOps[A, CC, C]

Неявное
Этот член добавлен неявным преобразованием из IterableOps[A, CC, C] кEnsuring[IterableOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Классы-определения
Ensuring

def ensuring(cond: Boolean, msg: => Any): IterableOps[A, CC, C]

Неявное
Этот член добавлен неявным преобразованием из IterableOps[A, CC, C] кEnsuring[IterableOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Классы-определения
Ensuring

def ensuring(cond: Boolean): IterableOps[A, CC, C]

Неявное
Этот член добавлен неявным преобразованием из IterableOps[A, CC, C] кEnsuring[IterableOps[A, CC, C]] с помощью метода Ensuring в scala.Predef.
Классы-определения
Ensuring

def equals(arg0: Any): Boolean

Сравнивает получаемый объект (this) с объектом-аргументом (that) на равенство.

Любая реализация этого метода должна быть отношением эквивалентности:

    Она является рефлексивной: для любого экземпляра x типа Any, x.equals(x) должен возвращать true.Она является симметричной: для любых экземпляров x и y типа Any, x.equals(y) должен возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Она является транзитивной: для любых экземпляров x, y и z типа Any если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должен возвращать true.

Если вы перезаписываете этот метод, вы должны убедиться, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode для обеспечения того, что объекты, которые "равны" (o1.equals(o2) возвращает true), имеют одинаковый хеш-код (scala.Int). (o1.hashCode.equals(o2.hashCode)).

возвращает

true если получаемый объект эквивалентен аргументу; false в противном случае.

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

def exists(p: (A) => Boolean): Boolean

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

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

p

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

возвращает

true если указанный предикат p удовлетворяется по крайней мере одним элементом этого набора, в противном случае false

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

def filter(pred: (A) => Boolean): C

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def filterNot(pred: (A) => Boolean): C

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

pred

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def find(p: (A) => Boolean): Option[A]

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

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

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

p

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

returns

значение типа Option, содержащее первый элемент набора, удовлетворяющий p, или None, если такой элемент не существует.

Definition Classes
IterableOnceOps

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)
B

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

f

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Note

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

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)
B

тип элементов каждого набора.

asIterable

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

returns

новый итерируемый набор, полученный путём конкатенации всех итерируемых наборов элементов.

Definition Classes
IterableOps → IterableOnceOps
Note

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

def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

A1

параметр типа для бинарного оператора, надтип A.

z

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

op

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

returns

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

Definition Classes
IterableOnceOps

def foldLeft[B](z: B)(op: (B, A) => B): B

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

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

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

B

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

z

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

op

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

returns

результат вставки op между последовательными элементами этого набора, слева направо с начальным значением z слева:

op(...op(z, x_1), x_2, ..., x_n)

где x1, ..., xn являются элементами этого набора. Возвращает z если этот набор пуст.

Definition Classes
IterableOnceOps

def foldRight[B](z: B)(op: (A, B) => B): B

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

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

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

B

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

z

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

op

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

returns

результат вставки op между последовательными элементами этого набора, справа налево с начальным значением z справа:

op(x_1, op(x_2, ... op(x_n, z)...))

где x1, ..., xn являются элементами этого набора. Возвращает z если этот набор пуст.

Definition Classes
IterableOnceOps

def forall(p: (A) => Boolean): Boolean

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

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

p

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

returns

true если этот набор пуст или заданный предикат p выполняется для всех элементов этого набора, в противном случае false.

Definition Classes
IterableOnceOps

def foreach[U](f: (A) => U): Unit

Применить f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для помощи в инференции типов scalac.

Definition Classes
IterableOnceOps

def formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с заданной строкой format. Формат строк аналогичен String.format (@see java.lang.String.format).

Implicit
Этот член добавлен неявным преобразованием из IterableOps[A, CC, C] вStringFormat[IterableOps[A, CC, C]] выполняемый методом StringFormat в scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()

def groupBy[K](f: (A) => K): immutable.Map[K, C]

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

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

K

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

f

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

returns

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

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

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

def groupMap[K, B](key: (A) => K)(f: (A) => B): immutable.Map[K, CC[B]]

Разбивает этот итерируемый набор на карту итерируемых наборов в соответствии с функцией-дискриминатором key. Каждый элемент в группе преобразуется в значение типа B с использованием функции value.

Эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.

case class User(name: String, age: Int)

def namesByAge(users: Seq[User]): Map[Int, Seq[String]] =
  users.groupMap(_.age)(_.name)

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

K

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

B

тип значений, возвращаемых функцией преобразования

key

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

f

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

def groupMapReduce[K, B](key: (A) => K)(f: (A) => B)(reduce: (B, B) => B): immutable.Map[K, B]

Разбивает этот итерируемый набор на карту в соответствии с функцией-дискриминатором key. Все значения, имеющие одинаковый дискриминатор, затем преобразуются с помощью функции value, а затем сводятся к одному значению с помощью функции reduce.

Эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.

def occurrences[A](as: Seq[A]): Map[A, Int] =
  as.groupMapReduce(identity)(_ => 1)(_ + _)

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

def grouped(size: Int): Iterator[C]

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

size

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

returns

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

См. также

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

def hashCode(): Int

Вычисляет значение хэш-кода для объекта.

Алгоритм хэширования по умолчанию зависит от платформы.

Обратите внимание, что для двух объектов разрешается иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)), но не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода убедитесь, что поведение согласуется с методом equals.

returns

значение хэш-кода для этого объекта.

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

def head: A

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

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

returns

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

Исключения

NoSuchElementException, если итерируемый набор пуст.

def headOption: Option[A]

Необязательно выбирает первый элемент.

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

returns

первый элемент этого итерируемого набора, если он не пуст, None если он пуст.

def init: C

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

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

def inits: Iterator[C]

Итерируется по начальным частям этого итерируемого набора. Первое значение будет этим итерируемым набором, а последнее — пустым итерируемым набором, а промежуточные значения будут результатами последовательных применений init.

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

returns

итератор по всем начальным частям этого итерируемого набора

Пример:

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

def isEmpty: Boolean

Проверяет, пуста ли коллекция.

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

returns

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

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

final def isInstanceOf[T0]: Boolean

Проверяет, соответствует ли динамический тип объекта-получателя типу T0.

Обратите внимание, что результат проверки зависит от правил стирания типов Scala. Таким образом, выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания параметра типа при компиляции, невозможно проверить, соответствуют ли содержимое списка указанному типу.

returns

true если объект-получатель является экземпляром стертого типа T0; false в противном случае.

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

def isTraversableAgain: Boolean

Проверяет, можно ли многократно пройтись по этому итерируемому набору. Всегда true для Iterables и false для Iterators, если не переопределено.

returns

true если многократное прохождение возможно, false в противном случае.

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

def knownSize: Int

returns

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

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

def last: A

Выбирает последний элемент.

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

returns

Последний элемент этой итерируемой коллекции.

Исключения

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

def lastOption: Option[A]

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

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

returns

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

def map[B](f: (A) => B): CC[B]

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

B

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

f

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

returns

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

Определяющие классы
IterableOps → IterableOnceOps
Примечание

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

def max[B >: A](implicit ord: math.Ordering[B]): A

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

B

Тип, для которого определен порядок.

ord

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

returns

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

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

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

def maxBy[B](f: (A) => B)(implicit cmp: math.Ordering[B]): A

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

B

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

f

Измеряющая функция.

cmp

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

returns

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

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

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

def maxByOption[B](f: (A) => B)(implicit cmp: math.Ordering[B]): Option[A]

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

B

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

f

Измеряющая функция.

cmp

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

returns

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

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

def maxOption[B >: A](implicit ord: math.Ordering[B]): Option[A]

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

B

Тип, для которого определен порядок.

ord

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

returns

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

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

def min[B >: A](implicit ord: math.Ordering[B]): A

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

B

Тип, для которого определен порядок.

ord

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

returns

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

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

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

def minBy[B](f: (A) => B)(implicit cmp: math.Ordering[B]): A

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

B

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

f

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

cmp

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

returns

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

Definition Classes
IterableOnceOps
Exceptions thrown

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

def minByOption[B](f: (A) => B)(implicit cmp: math.Ordering[B]): Option[A]

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

B

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

f

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

cmp

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

returns

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

Definition Classes
IterableOnceOps

def minOption[B >: A](implicit ord: math.Ordering[B]): Option[A]

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

B

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

ord

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

returns

значение типа Option, содержащее наименьший элемент этого набора относительно порядка ord.

Definition Classes
IterableOnceOps

final def mkString: String

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

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

returns

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

Definition Classes
IterableOnceOps
Annotations
@inline()

final def mkString(sep: String): String

Отображает все элементы этого набора в строке с помощью разделителя.

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

sep

разделитель.

returns

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

Definition Classes
IterableOnceOps
Annotations
@inline()
Пример:

    List(1, 2, 3).mkString("|") = "1|2|3"

final def mkString(start: String, sep: String, end: String): String

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

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

start

начальная строка.

sep

разделитель.

end

конечная строка.

returns

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

Definition Classes
IterableOnceOps
Пример:

    List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"

def nonEmpty: Boolean

Проверяет, не пуст ли набор.

returns

true если набор содержит хотя бы один элемент, false в противном случае.

Definition Classes
IterableOnceOps
Annotations
@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")

def partition(p: (A) => Boolean): (C, C)

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

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

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))
A1

тип элементов первой результирующей коллекции

A2

тип элементов второй результирующей коллекции

f

'функция разделения', отображающая элементы этой итерируемой коллекции в scala.util.Either

returns

пара итерируемых коллекций: первая состоит из значений, возвращаемых f, которые были обернуты в scala.util.Left, а вторая — из тех, которые обернуты в scala.util.Right.

def product[B >: A](implicit num: math.Numeric[B]): B

Перемножает элементы этой коллекции.

B

результирующий тип оператора *.

num

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

returns

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

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

def reduce[B >: A](op: (B, B) => B): B

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

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

B

Параметр типа для бинарного оператора, супертип A.

op

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

returns

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

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

def reduceLeft[B >: A](op: (B, A) => B): B

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

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

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

B

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

op

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

returns

результат вставки op между последовательными элементами этой коллекции, слева направо:

op( op( ... op(x_1, x_2) ..., x_{n-1}), x_n)

где x1, ..., xn — элементы этой коллекции.

Определяющие классы
IterableOnceOps
Выбрасываемые исключения

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

def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

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

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

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

B

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

op

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

returns

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

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

def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

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

B

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

op

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

returns

Значение типа Option, содержащее результат применения оператора reduce к op между всеми элементами, если набор не пуст, и None в противном случае.

Definition Classes
IterableOnceOps

def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

B

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

op

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

returns

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

op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))

где x1, ..., xn являются элементами этого набора.

Definition Classes
IterableOnceOps
Exceptions thrown

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

def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

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

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

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

B

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

op

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

returns

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

Definition Classes
IterableOnceOps

def reversed: Iterable[A]

Attributes
protected
Definition Classes
IterableOnceOps

def scan[B >: A](z: B)(op: (B, B) => B): CC[B]

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

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

B

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

z

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

op

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

returns

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

def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

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

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

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

B

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

z

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

op

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

returns

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

Definition Classes
IterableOps → IterableOnceOps
Примечание

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

def scanRight[B](z: B)(op: (A, B) => B): CC[B]

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
B

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

z

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

op

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

returns

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

def size: Int

Размер этого набора.

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

returns

количество элементов в этом наборе.

Definition Classes
IterableOnceOps

def sizeCompare(that: Iterable[_]): Int

Сравнивает размер этого итерируемого набора со размером другого Iterable.

that

Iterable, размер которого сравнивается с размером этого итерируемого набора.

returns

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Реализация метода здесь не вызывает size напрямую; его время выполнения равно O(this.size min that.size), а не O(this.size + that.size). Метод следует переопределить, если вычисление size является быстрым, и knownSize возвращает -1.

def sizeCompare(otherSize: Int): Int

Сравнивает размер этого итерируемого набора со значением.

otherSize

тестовое значение, которое сравнивается с размером.

returns

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Реализация метода здесь не вызывает size напрямую; его время выполнения равно O(size min otherSize), а не O(size). Метод следует переопределить, если вычисление size является быстрым, и knownSize возвращает -1.

См. также

sizeIs

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
Аннотации
@inline()

def slice(from: Int, until: Int): C

Выбирает интервал элементов. Возвращаемый итерируемый набор состоит из всех элементов x, которые удовлетворяют инварианту:

from <= indexOf(x) < until

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

from

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

until

наименьший индекс для исключения из этого итерируемого набора.

returns

итерируемый набор, содержащий элементы, большие или равные индексу from, простирающиеся до (но не включая) индекса until этого итерируемого набора.

Определяющие классы
IterableOps → IterableOnceOps
Примечание

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

def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от их разделения на части, как это делается в grouped.)

size

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

step

расстояние между первыми элементами последовательных групп

returns

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

См. также

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

def sliding(size: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от их разделения на части, как это делается в grouped.) Шаг "скользящего окна" устанавливается в единицу.

size

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

returns

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

См. также

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

def span(p: (A) => Boolean): (C, C)

Разделяет этот итерируемый набор на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

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

p

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

returns

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

Определяющие классы
IterableOps → IterableOnceOps
Примечание

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

def splitAt(n: Int): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

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

n

позиция, в которой нужно разделить.

returns

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

Definition Classes
IterableOps → IterableOnceOps
Примечание

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

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

Возвращает Stepper для элементов этой коллекции.

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

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

    Для коллекций Int, Short, Byte или Char, возвращается IntStepper. Для коллекций Double или Float, возвращается DoubleStepper. Для коллекций Long, возвращается LongStepper. Для любого другого типа элементов возвращается AnyStepper.

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

Definition Classes
IterableOnce

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

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

B

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

num

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

returns

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

Definition Classes
IterableOnceOps

def tail: C

def tails: Iterator[C]

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

returns

итератор по всем хвостам этой итерируемой коллекции

Пример:

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

def take(n: Int): C

Выбирает первые n элементов.

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

n

количество элементов для извлечения из этой итерируемой коллекции.

returns

итерируемая коллекция, состоящая только из первых n элементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательно, возвращает пустую итерируемую коллекцию.

Definition Classes
IterableOps → IterableOnceOps
Примечание

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

def takeRight(n: Int): C

Выбирает последние n элементов.

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

n

количество элементов для извлечения из этой итерируемой коллекции.

returns

итерируемая коллекция, состоящая только из последних n элементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательно, возвращает пустую итерируемую коллекцию.

def takeWhile(p: (A) => Boolean): C

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

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

p

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

returns

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

Definition Classes
IterableOps → IterableOnceOps

def tapEach[U](f: (A) => U): C

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

U

тип возвращаемого значения f

f

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

returns

Тот же логический набор, что и этот

Definition Classes
IterableOps → IterableOnceOps

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

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

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

Definition Classes
IterableOnceOps

def toArray[B >: A](implicit arg0: ClassTag[B]): Array[B]

Преобразовать набор в массив.

Definition Classes
IterableOnceOps

final def toBuffer[B >: A]: Buffer[B]

Definition Classes
IterableOnceOps
Annotations
@inline()

def toIndexedSeq: immutable.IndexedSeq[A]

Definition Classes
IterableOnceOps

def toList: immutable.List[A]

Definition Classes
IterableOnceOps

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

Definition Classes
IterableOnceOps

def toSeq: immutable.Seq[A]

returns

Этот набор в виде Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

Definition Classes
IterableOnceOps

def toSet[B >: A]: immutable.Set[B]

Definition Classes
IterableOnceOps

def toString(): String

Возвращает строковое представление объекта.

Стандартное представление зависит от платформы.

returns

строковое представление объекта.

Definition Classes
Any

def toVector: immutable.Vector[A]

Definition Classes
IterableOnceOps

def transpose[B](implicit asIterable: (A) => Iterable[B]): CC[CC[B]]

Транспонирует эту итерируемую коллекцию итерируемых коллекций в итерируемую коллекцию итерируемых коллекций.

Тип результирующей коллекции будет определяться статическим типом итерируемой коллекции. Например:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

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

B

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

asIterable

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

returns

двумерная итерируемая коллекция итерируемых коллекций, у которой n-я строка является n-м столбцом этой итерируемой коллекции.

Исключения

IllegalArgumentException, если все коллекции в этой итерируемой коллекции не имеют одинаковый размер.

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))
A1

тип первой половины элементов пар

A2

тип второй половины элементов пар

asPair

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

returns

пара итерируемых коллекций, содержащих первую, соответственно вторую половину каждой пары элементов этой итерируемой коллекции.

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))
A1

тип первого элемента троек

A2

тип второго элемента троек

A3

тип третьего элемента троек

asTriple

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

returns

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

def view: View[A]

def withFilter(p: (A) => Boolean): WithFilter[A, CC]

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

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

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

p

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

returns

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

def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

B

тип второй половины возвращенных пар

that

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

returns

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

def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

that

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

thisElem

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

thatElem

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

returns

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

def zipWithIndex: CC[(A, Int)]

Сжимает эту итерируемую коллекцию со своими индексами.

returns

Новая итерируемая коллекция, содержащая пары, состоящие из всех элементов этой итерируемой коллекции, спаренных с их индексом. Индексы начинаются с 0.

Definition Classes
IterableOps → IterableOnceOps
Пример:

    List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Примечание

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

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/collection/IterableOps.html

Spec-Zone.ru

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