Spec-Zone.ru › Scala 3.2

Тракт Iterable.Iterable

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

тракт Iterable[+A] extends IterableOnce[A] with IterableOps[A, Iterable, Iterable[A]] with IterableFactoryDefaults[A, Iterable]

Базовый тракт для обобщённых коллекций.

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

тип элементов коллекции

Надтипы
тракт IterableFactoryDefaults[A, Iterable]
тракт IterableOps[A, Iterable, Iterable[A]]
тракт IterableOnceOps[A, Iterable, Iterable[A]]
тракт IterableOnce[A]
класс Object
тракт Matchable
класс Any
Известные подтипы
203 типа
class AbstractIterable[A]
class AbstractMap[K, V]
class AbstractMap[K, V]
class HashMap[K, V]
class IntMap[T]
class ListMap[K, V]
class LongMap[T]
class Map1[K, V]
class Map2[K, V]
class Map3[K, V]
class Map4[K, V]
class WithDefault[K, V]
class WithDefault[K, V]
class TreeMap[K, V]
class TreeSeqMap[K, V]
class VectorMap[K, V]
class AbstractMap[K, V]
class TrieMap[K, V]
class AnyRefMap[K, V]
class CollisionProofHashMap[K, V]
class HashMap[K, V]
class LinkedHashMap[K, V]
class ListMap[K, V]
class LongMap[V]
class WithDefault[K, V]
class WithDefault[K, V]
class OpenHashMap[Key, Value]
class TreeMap[K, V]
class SystemProperties
class AbstractSeq[A]
class AbstractSeq[A]
class ArraySeq[A]
class ofBoolean
class ofByte
class ofChar
class ofDouble
class ofFloat
class ofInt
class ofLong
class ofRef[T]
class ofShort
class ofUnit
class LazyList[A]
class List[A]
class ::[A]
object Nil.type
class NumericRange[T]
class Exclusive[T]
class Inclusive[T]
class Queue[A]
class Диапазон
class Exclusive
class Inclusive
class Stream[A]
class Cons[A]
object Empty.type
class Vector[A]
class WrappedString
class AbstractSeq[A]
class AbstractBuffer[A]
class ArrayBuffer[A]
class ArrayDeque[A]
class Очередь[A]
class Стек[A]
class ListBuffer[A]
class UnrolledBuffer[T]
class ArraySeq[T]
class ofBoolean
class ofByte
class ofChar
class ofDouble
class ofFloat
class ofInt
class ofLong
class ofRef[T]
class ofShort
class ofUnit
class StringBuilder
class AbstractSet[A]
class AbstractSet[A]
class ValueSet
class ImmutableKeySet
class BitSet
class BitSet1
class BitSet2
class BitSetN
class HashSet[A]
class ListSet[A]
class Set1[A]
class Set2[A]
class Set3[A]
class Set4[A]
class ImmutableKeySortedSet
class TreeSet[A]
class AbstractSet[A]
class BitSet
class HashSet[A]
class LinkedHashSet[A]
class TreeSet[A]
class AbstractView[A]
class AbstractMapView[K, V]
class Filter[K, V]
class FilterKeys[K, V]
class Id[K, V]
class MapValues[K, V, W]
class TapEach[K, V, U]
class AbstractSeqView[A]
class AbstractIndexedSeqView[A]
class Slice[A]
class StringView
class ArrayBufferView[A]
class Id[A]
class Id[A]
class Reverse[A]
class Reverse[A]
class Appended[A]
class Appended[A]
class Appended[A]
class Collect[A, B]
class Concat[A]
class Concat[A]
class Concat[A]
class DistinctBy[A, B]
class Drop[A]
class Drop[A]
class Drop[A]
class DropRight[A]
class DropRight[A]
class DropRight[A]
class DropWhile[A]
class Elems[A]
object Empty.type
class Fill[A]
class Filter[A]
class FlatMap[A, B]
class Iterate[A]
class LeftPartitionMapped[A, A1, A2]
class Map[A, B]
class Map[A, B]
class Map[A, B]
class PadTo[A]
class Prepended[A]
class Prepended[A]
class Prepended[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]

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

Исходный код
def iterableFactory: IterableFactory[Iterable]

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

Примечание

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

Исходный код
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

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

Вызовы lazyZip могут быть объединены для поддержки более высоких арностей (до 4) без затрат на построение и декомпозицию промежуточных кортежей.

val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Параметры типа
B

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

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

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

Возвращает

декоратор LazyZip2, позволяющий выполнять строгие операции над лениво вычисляемыми парами или цепочку вызовов lazyZip. Также поддерживается неявное преобразование в Iterable[(A, B)].

Исходный код
override def toString: String

Преобразует эту коллекцию Iterable в строку.

Возвращает

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

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

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

Исходный код
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

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

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

Исходный код
final def addString(b: StringBuilder): 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

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

Возвращает

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

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

Исходный код
final def addString(b: StringBuilder, sep: String): StringBuilder

Добавляет все элементы этой коллекции в 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

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

sep

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

Возвращает

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

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

Исходный код
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder

Добавляет все элементы этой коллекции в 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

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

end

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

sep

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

start

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

Возвращает

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

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

Исходный код
def collect[B](pf: PartialFunction[A, B]): CC[B]

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

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

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

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

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

Возвращает

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

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

Источник
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 concat[B >: A](suffix: IterableOnce[B]): CC[B]

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

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

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

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

перебираемая последовательность для добавления.

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Унаследовано от IterableOps
END_OF_DOCUMENT_MARKER

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

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

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

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

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

Возвращает

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

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

Source
override def empty: CC[A]

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

Возвращает

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

Классы определений IterableFactoryDefaults -> IterableOps
Унаследовано от IterableFactoryDefaults

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
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

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

Возвращает

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

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

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

Преобразует этот итерируемый набор перебираемых наборов в итерируемый набор, образованный элементами этих перебираемых наборов.

Тип результирующего набора будет определяться типом итерируемого набора. Например:

val xs = List(
           Set(1, 2, 3),
           Set(1, 2, 3)
         ).flatten
// xs == List(1, 2, 3, 1, 2, 3)

val ys = Set(
           List(1, 2, 3),
           List(3, 2, 1)
         ).flatten
// ys == Set(1, 2, 3)
Параметры типа
B

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

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

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

Возвращает

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

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

Источник
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def foreach[U](f: A => U): Unit

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

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

Источник
protected def fromSpecific(coll: IterableOnce[A]): CC[A]

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

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

Примечание

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

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

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

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

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

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

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

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

Источник
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]

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

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

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

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

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

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

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

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

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

Возвращает

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

См. также

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

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

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

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

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

Возвращает первый элемент в виде Option.

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

итератор по всем начальным частям этой итерируемой коллекции

Пример

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

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

Источник
def isEmpty: Boolean

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

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

Возвращает

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

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

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

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

Возвращает

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

Классы определения IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Источник
def iterator: Iterator[A]

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

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

Источник
def knownSize: Int

Возвращает

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

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

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

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
final def mkString: String

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

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

Возвращает

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

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

Source
final def mkString(sep: String): String

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

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

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

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

Возвращает

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

Пример

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

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

Source
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

Source
protected def newSpecificBuilder: Builder[A, CC[A]]

Возвращает

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

Примечание

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

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

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

Source
def nonEmpty: Boolean

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

Возвращает

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

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

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

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

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

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

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.

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

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

Произведение элементов этой коллекции.

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

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

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

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

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

Возвращает

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

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

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

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

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

class="attributes">
Тип параметров
B

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

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

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

Возвращает

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

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

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

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

Источник
def reduceLeft[B >: A](op: (B, A) => B): B

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

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

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

class="attributes">
Тип параметров
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]

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

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

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

class="attributes">
Тип параметров
B

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

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

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

Возвращает

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

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

Источник
def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

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

class="attributes">
Тип параметров
B

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

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

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

Возвращает

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

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

Источник
def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

class="attributes">
Тип параметров
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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Исходный код
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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

Источник
def sizeCompare(that: Iterable[_]): Int

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

Параметры
that

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

Возвращает

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

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

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

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

Источник
final def sizeIs: SizeCompareOps

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

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

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0
Унаследовано от IterableOps

Источник
def slice(from: Int, until: Int): C

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

from <= indexOf(x) < until

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

Параметры
from

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

until

наименьший индекс, который нужно ИСКЛЮЧИТЬ из этой итерируемой коллекции.

Возвращает

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

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

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

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

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

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

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

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

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

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

Параметры
p

предикат проверки

Возвращает

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

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

Источник
override def splitAt(n: Int): (C, C)

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

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

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

Параметры
n

позиция разделения.

Возвращает

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

Классы определения IterableOps -> IterableOnceOps
Унаследовано от IterableOps

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

END_OF_DOCUMENT_MARKER

Обратите внимание, что этот метод переопределен в подклассах, а тип возвращаемого значения уточняется до 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 tail: C

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

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

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

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

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

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

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Такая же логическая коллекция, как и эта

Классы определения IterableOps -> IterableOnceOps
Унаследовано от IterableOps

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

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

Исходный код
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

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

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

Исходный код
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

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

Возвращает

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

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

Исходный код
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])

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

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

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

A2

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

A3

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

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

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

Возвращает

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

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

Исходный код
def view: View[A]

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

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

Исходный код
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.

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

Исходный код
def zip[B](that: IterableOnce[B]): CC[(A, B)]

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

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

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

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

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

Возвращает

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

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

Исходный код
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 используются для дополнения результата.

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

Исходный код
def zipWithIndex: CC[(A, Int)]

Объединяет это итерируемое множество с его индексами.

Возвращает

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

Пример

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

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

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

Spec-Zone.ru

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