Spec-Zone.ru › Scala 3.1

Трейт scala.collection.IterableOps

Объект-компаньон • Исходный код

трейт IterableOps[+A, +CC[_], +C] extends IterableOnce[A] with IterableOnceOps[A, CC, C]

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

VarianceNote

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

Параметры типа
C

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

CC

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

Супертипы
трейт IterableOnceOps[A, CC, C]
трейт IterableOnce[A]
класс Any
Известные подтипы
244 типа
trait EvidenceIterableFactoryDefaults[A, CC, Ev]
class МассивSeq[A]
class булево
class байт
class символ
class двойное
class с плавающей точкой
class целое
class длинное
class ссылка[T]
class короткое
class единица
class РазвёрнутыйБуфер[T]
trait Итерируемый[A]
class АбстрактныйИтерируемый[A]
class АбстрактныйСловарь[K, V]
class АбстрактныйСловарь[K, V]
class ХэшТаблица[K, V]
class ЦелочисленныйСловарь[T]
class СписокСловарь[K, V]
class ДлинныйСловарь[T]
class Словарь1[K, V]
class Словарь2[K, V]
class Словарь3[K, V]
class Словарь4[K, V]
class СДефолтом[K, V]
class СДефолтом[K, V]
class ДеревоСловарь[K, V]
class ДеревоСписокСловарь[K, V]
class ВекторСловарь[K, V]
class ИзменяемыйСловарь[K, V]
class TrieСловарь[K, V]
class ЛюбойссылкаСловарь[K, V]
class НеколлизионнаяХэшТаблица[K, V]
class ИзменяемаяХэшТаблица[K, V]
class СвязаннаяХэшТаблица[K, V]
class СписокСловарь[K, V]
class ДлинныйСловарь[V]
class СДефолтом[K, V]
class СДефолтом[K, V]
class ОткрытаяХэшТаблица[Key, Value]
class ИзменяемоеДеревоСловарь[K, V]
class СвойстваСистемы
class АбстрактнаяПоследовательность[A]
class НеизменяемаяПоследовательность[A]
class ЛенивыйСписок[A]
class Список[A]
class ::[A]
object Nil.type
class ЧисловойДиапазон[T]
class Исключительный[T]
class Включительно[T]
class Очередь[A]
class Диапазон
class Исключительный
class Включительно
class Поток[A]
class Cons[A]
object Пустой.type
class Вектор[A]
class ОбёрнутаяСтрока
class ИзменяемаяПоследовательность[A]
class ИзменяемыйБуфер[A]
class МассивБуфер[A]
class ДвухстороннийОчередь[A]
class ИзменяемаяОчередь[A]
class Стек[A]
class СписокБуфер[A]
class МассивПоследовательность[T]
class булево
class байт
class символ
class двойное
class с плавающей точкой
class целое
class длинное
class ссылка[T]
class короткое
class единица
class СтрокаПостроитель
class АбстрактноеМножество[A]
class НеизменяемоеМножество[A]
class МножествоЗначений
class НеизменяемыйКлючевойНабор
class БитовыйМассив
class БитовыйМассив1
class БитовыйМассив2
class БитовыйМассивN
class ХэшМножество[A]
class СписокМножество[A]
class Множество1[A]
class Множество2[A]
class Множество3[A]
class Множество4[A]
class НеизменяемыйОтсортированныйКлючевойНабор
class ДеревоМножество[A]
class ИзменяемоеМножество[A]
class ИзменяемыйБитовыйМассив
class ИзменяемоеХэшМножество[A]
class СвязанноеХэшМножество[A]
class ИзменяемоеДеревоМножество[A]
class АбстрактныйПросмотр[A]
class АбстрактныйПросмотрСловаря[K, V]
class Фильтр[K, V]
class ФильтрКлючей[K, V]
class Идентификатор[K, V]
class ЗначенияСловаря[K, V, W]
class ПрименитьККаждому[K, V, U]
class АбстрактныйПросмотрПоследовательности[A]
class АбстрактныйПросмотрИндексируемойПоследовательности[A]
class Срез[A]
class ПросмотрСтроки
class ПросмотрМассивБуфера[A]
class Идентификатор[A]
class Идентификатор[A]
class ОбратныйПорядок[A]
class ОбратныйПорядок[A]
class ДобавитьВКонец[A]
class ДобавитьВКонец[A]
class ДобавитьВКонец[A]
class Собрать[A, B]
class Объединить[A]
class Объединить[A]
class Объединить[A]
class РазныеПо[A, B]
class ОставитьСНачала[A]
class ОставитьСНачала[A]
class ОставитьСНачала[A]
class ОставитьСКонца[A]
class ОставитьСКонца[A]
class ОставитьСКонца[A]
class ОставитьПока[A]
class Элементы[A]
object Пустой.type
class Заполнить[A]
class Фильтр[A]
class ПлоскийМап[A, B]
class Итерировать[A]
class СлеваРазделённый[A, A1, A2]
class Мап[A, B]
class Мап[A, B]
class Мап[A, B]
class ЗаполнитьДо[A]
class ДобавитьВНачало[A]
class ДобавитьВНачало[A]
class ДобавитьВНачало[A]
class RightPartitionMapped[A, A1, A2]
class ScanLeft[A, B]
class Single[A]
class Tabulate[A]
class Take[A]
class Take[A]
class Take[A]
class TakeRight[A]
class TakeRight[A]
class TakeRight[A]
class TakeWhile[A]
class Unfold[A, S]
class Updated[A]
class Zip[A, B]
class ZipAll[A, B]
class ZipWithIndex[A]
class AbstractIterable[A]
class PriorityQueue[A]
trait Map[K, V]
trait DefaultMap[K, V]
trait SeqMap[K, V]
trait SeqMap[K, V]
trait SeqMap[K, V]
trait SortedMap[K, V]
trait SortedMap[K, V]
trait SortedMap[K, V]
trait Map[K, V]
trait Map[K, V]
trait Map[K, V]
trait MultiMap[K, V]
trait Seq[A]
trait IndexedSeq[A]
trait IndexedSeq[A]
trait IndexedSeq[T]
trait IndexedBuffer[A]
trait LinearSeq[A]
trait LinearSeq[A]
trait Seq[A]
trait Seq[A]
trait Buffer[A]
class Accumulator[A, CC, C]
class AnyAccumulator[A]
class DoubleAccumulator
class IntAccumulator
class LongAccumulator
trait Set[A]
trait SortedSet[A]
trait BitSet
trait SortedSet[A]
trait SortedSet[A]
trait Set[A]
trait Set[A]
trait View[A]
trait MapView[K, V]
trait SeqView[A]
trait IndexedSeqView[A]
class Sorted[A, B]
trait Iterable[A]
trait Iterable[A]
trait IterableFactoryDefaults[A, CC]
trait MapFactoryDefaults[K, V, CC, WithFilterCC]
class WeakHashMap[K, V]
trait MapOps[K, V, CC, C]
trait SortedMapFactoryDefaults[K, V, CC, WithFilterCC, UnsortedCC]
trait SortedMapOps[K, V, CC, C]
trait StrictOptimizedSortedMapOps[K, V, CC, C]
trait StrictOptimizedSortedMapOps[K, V, CC, C]
trait SortedMapOps[K, V, CC, C]
trait SortedMapOps[K, V, CC, C]
trait StrictOptimizedMapOps[K, V, CC, C]
trait StrictOptimizedMapOps[K, V, CC, C]
trait MapOps[K, V, CC, C]
trait MapOps[K, V, CC, C]
trait SeqOps[A, CC, C]
trait IndexedSeqOps[A, CC, C]
trait IndexedSeqOps[A, CC, C]
trait IndexedSeqOps[A, CC, C]
trait LinearSeqOps[A, CC, C]
trait StrictOptimizedLinearSeqOps[A, CC, C]
trait LinearSeqOps[A, CC, C]
trait StrictOptimizedSeqOps[A, CC, C]
trait StrictOptimizedSeqOps[A, CC, C]
trait ArrayDequeOps[A, CC, C]
trait SeqOps[A, CC, C]
trait SeqOps[A, CC, C]
trait SetOps[A, CC, C]
trait SortedSetOps[A, CC, C]
trait BitSetOps[C]
trait SortedSetFactoryDefaults[A, CC, WithFilterCC]
trait StrictOptimizedSortedSetOps[A, CC, C]
trait StrictOptimizedSortedSetOps[A, CC, C]
trait SortedSetOps[A, CC, C]
trait SortedSetOps[A, CC, C]
trait StrictOptimizedSetOps[A, CC, C]
trait StrictOptimizedSetOps[A, CC, C]
trait SetOps[A, CC, C]
trait SetOps[A, CC, C]
trait StrictOptimizedIterableOps[A, CC, C]

Абстрактные методы

Источник
def iterableFactory: IterableFactory[CC]

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

Примечание

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

Конкретные методы

Источник@inline
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

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

Источник
def collect[B](pf: PartialFunction[A, B]): CC[B]

Источник
def concat[B >: A](suffix: IterableOnce[B]): CC[B]

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

Параметры типа
B

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

Параметры значения
suffix

объект обхода для добавления.

Возвращаемое значение

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

Источник
def drop(n: Int): C

Источник
def dropRight(n: Int): C

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

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

Параметры значения
n

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

Возвращает

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

Источник
def dropWhile(p: A => Boolean): C

Источник
def empty: C

Пустой итерируемый набор того же типа, что и этот итерируемый набор

Возвращает

пустой итерируемый набор типа C.

Источник
def filter(pred: A => Boolean): C

Источник
def filterNot(pred: A => Boolean): C

Источник
def flatMap[B](f: A => IterableOnce[B]): CC[B]

Источник
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[B]

Источник
def groupBy[K](f: A => K): Map[K, C]

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

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

Параметры типа
K

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

Параметры значения
f

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

Возвращает

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

(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): 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)

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

Параметры типа
B

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

K

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

Параметры значения
f

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

key

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

Источник
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)(_ + _)

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

Источник
def grouped(size: Int): Iterator[C]

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

Параметры значения
size

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

Возвращает

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

См. также

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

Источник
def head: A

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

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

Возвращает

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

Исключение
NoSuchElementException

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

Источник
def headOption: Option[A]

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

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

Возвращает

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

Источник
def init: C

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

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

Источник
def inits: Iterator[C]

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

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

Возвращает

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

Пример

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

Источник
override def isTraversableAgain: Boolean

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

Источник
def last: A

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

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

Возвращает

Последний элемент этого итерируемого набора.

Исключение
NoSuchElementException

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

Источник
def lastOption: Option[A]

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

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

Возвращает

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

Источник
def map[B](f: A => B): CC[B]

Источник
def partition(p: A => Boolean): (C, C)

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

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

Source
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

Возвращает

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

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

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

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

Параметры типа
B

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

Параметры значения
op

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

z

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

Возвращает

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

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

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)
Параметры типа
B

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

Параметры значения
op

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

z

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

Возвращает

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

Source
def sizeCompare(otherSize: Int): Int

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

Параметры значения
otherSize

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

Возвращает

Значение 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

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

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

Параметры значения
that

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

Возвращает

Значение 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.

Source@inline
final def sizeIs: SizeCompareOps

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

Эти операции реализованы через sizeCompare(Int), и позволяют использовать более читабельный синтаксис:

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0

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

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

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

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

Параметры значения
size

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

Возвращает

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

См. также

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

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

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

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

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

Параметры значения
size

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

step

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

Возвращает

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

См. также

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

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

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

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

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

Source
def tail: C

Остаток коллекции без её первого элемента.

Source
def tails: Iterator[C]

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

Возвращает

итератор по всем хвостам этого итерируемого набора

Пример

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

Источник
def take(n: Int): C

Источник
def takeRight(n: Int): C

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

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

Параметры
n

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

Возвращает

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

Источник
def takeWhile(p: A => Boolean): C

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

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

Параметры
p

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

Возвращает

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

Источник
override def tapEach[U](f: A => U): C

Классы-определения 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.

Возвращает

двумерный итерируемый набор итерируемых наборов, у которого 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

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

Возвращает

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

Источник
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

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

Возвращает

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

Источник
def view: View[A]

Представление над элементами этого набора.

Источник
def withFilter(p: A => Boolean): WithFilter[A, CC]

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

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

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

Параметры
p

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

Возвращает

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

Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

Параметры типа
B

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

Параметры
that

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

Возвращает

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

Источник
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

Параметры
that

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

thatElem

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

thisElem

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

Возвращает

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

Источник
def zipWithIndex: CC[(A, Int)]

Наследованные методы

Источник@inline
final def addString(b: StringBuilder): 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: StringBuilder, sep: String): 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

Источник
def addString(b: StringBuilder, start: String, sep: String, end: String): 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

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

end

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

sep

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

start

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

Параметры значения
pf

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

Возвращает

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

Пример

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

Унаследовано от IterableOnceOps

Источник
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int

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

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

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

Параметры типа
B

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

Параметры значения
len

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

start

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

xs

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

Возвращает

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

Примечание

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

Унаследовано от IterableOnceOps

Источник@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: A](xs: Array[B], start: Int): Int

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

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

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

Параметры типа
B

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

Параметры значения
start

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

xs

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

Возвращает

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

Примечание

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

Унаследовано от IterableOnceOps

Источник@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
def copyToArray[B >: A](xs: Array[B]): Int

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

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

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

Параметры типа
B

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

Параметры значения
xs

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

Возвращает

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

Примечание

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

Унаследовано от IterableOnceOps

Источник
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

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

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

Параметры типа
B

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

Параметры значения
p

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

that

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def count(p: A => Boolean): Int

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

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

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOnceOps

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

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

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

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOnceOps

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

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

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

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

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOnceOps

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

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

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

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

Параметры типа
A1

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

Параметры значения
op

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

z

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

Возвращает

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

Унаследовано от IterableOnceOps

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

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

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

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

Параметры типа
B

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

Параметры значения
op

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

z

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

Возвращает

результат вставки op между последовательными элементами этого набора слева направо с начальным значением z слева: op(...op(z, x1), x2, ..., xn) где x1, ..., xn — элементы этого набора. Возвращает z если этот набор пуст.

Унаследовано от IterableOnceOps

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

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

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

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

Параметры типа
B

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

Параметры значения
op

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

z

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

Возвращает

результат вставки op между последовательными элементами этого набора справа налево с начальным значением z справа: op(x1, op(x2, ... op(xn, z)...)) где x1, ..., xn — элементы этого набора. Возвращает z если этот набор пуст.

Унаследовано от IterableOnceOps

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

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

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

Параметры
p

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

Возвращаемое значение

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

Унаследовано от IterableOnceOps

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

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

Унаследовано от IterableOnceOps

Source
def isEmpty: Boolean

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

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

Возвращаемое значение

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

Унаследовано от IterableOnceOps

Source
def iterator: Iterator[A]

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

Унаследовано от IterableOnce

Source
def knownSize: Int

Возвращаемое значение

Количество элементов в этом наборе, если оно может быть вычислено без затрат, -1 в противном случае. Без затрат обычно означает: не требуя обхода набора.

Унаследовано от IterableOnce

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

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

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

Параметры типа
B

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

Параметры
ord

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

Возвращаемое значение

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

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

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

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

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

Тип параметров
B

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

Параметры значений
cmp

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Источник
def maxByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

Тип параметров
B

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

Параметры значений
cmp

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

f

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def maxOption[B >: A](implicit ord: Ordering[B]): Option[A]

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

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

Тип параметров
B

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

Параметры значений
ord

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def min[B >: A](implicit ord: Ordering[B]): A

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

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

Тип параметров
B

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

Параметры значений
ord

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

Возвращает

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

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Источник
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

Тип параметров
B

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

Параметры значений
cmp

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Источник
def minByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

Тип параметров
B

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

Параметры значений
cmp

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

f

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def minOption[B >: A](implicit ord: Ordering[B]): Option[A]

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

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

Тип параметров
B

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

Параметры значений
ord

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник@inline
final def mkString: String

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

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

Возвращает

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

Унаследовано от IterableOnceOps

Источник@inline
final def mkString(sep: String): String

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

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

Параметры значений
sep

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

Возвращает

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

Пример

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

Унаследовано от IterableOnceOps

Источник
final def mkString(start: String, sep: String, end: String): String

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

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

Параметры значений
end

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

sep

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

start

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

Возвращает

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

Пример

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

Унаследовано от IterableOnceOps

Источник@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
def nonEmpty: Boolean

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def product[B >: A](implicit num: Numeric[B]): B

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

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

Параметры типа
B

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

Параметры значения
num

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def reduce[B >: A](op: (B, B) => B): B

Сводит элементы этой коллекции с помощью заданного ассоциативного бинарного оператора.

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

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

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Исходный код
def reduceLeft[B >: A](op: (B, A) => B): B

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

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

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

результат вставки op между последовательными элементами этой коллекции слева направо: op( op( ... op(x1, x2) ..., xn-1), xn), где x1, ..., xn являются элементами этой коллекции.

Исключения
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Исходный код
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

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

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

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

результат вставки op между последовательными элементами этой коллекции, двигаясь справа налево: op(x1, op(x2, ..., op(xn-1, xn)...)), где x1, ..., xn — элементы этой коллекции.

Выбрасывает
UnsupportedOperationException

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

Унаследовано от IterableOnceOps

Исходный код
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

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

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

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

Параметры типа
B

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

Параметры значения
op

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
protected def reversed: Iterable[A]

Унаследовано от IterableOnceOps

Исходный код
def size: Int

Размер этой коллекции.

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

Возвращает

количество элементов в этой коллекции.

Унаследовано от IterableOnceOps

Исходный код
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает 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. Для степеров, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные степеры могут быть преобразованы только в последовательные потоки.

Наследуется от IterableOnce

Источник
def sum[B >: A](implicit num: Numeric[B]): B

Суммирует элементы этого набора.

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

Параметры типа
B

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

Параметры значения
num

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

Возвращаемое значение

сумма всех элементов этого набора по отношению к оператору + в num.

Наследуется от IterableOnceOps

Источник
def to[C1](factory: Factory[A, C1]): C1

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

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

Наследуется от IterableOnceOps

Источник
def toArray[B >: A : ClassTag]: Array[B]

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

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

Наследуется от IterableOnceOps

Источник@inline
final def toBuffer[B >: A]: Buffer[B]

Наследуется от IterableOnceOps

Источник
def toIndexedSeq: IndexedSeq[A]

Наследуется от IterableOnceOps

Источник
def toList: List[A]

Наследуется от IterableOnceOps

Источник
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

Наследуется от IterableOnceOps

Источник
def toSeq: Seq[A]

Возвращаемое значение

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

Наследуется от IterableOnceOps

Источник
def toSet[B >: A]: Set[B]

Наследуется от IterableOnceOps

Источник
def toVector: Vector[A]

Наследуется от IterableOnceOps

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

Spec-Zone.ru

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