Spec-Zone.ru › Scala 3.1

Trait scala.collection.Iterator

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

trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Iterator[A]]

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

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

Важно отметить, что, если не указано иное, итератор не следует использовать после вызова метода. Два наиболее важных исключения — это единственные абстрактные методы: next и hasNext.

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

Рассмотрим этот пример безопасного и небезопасного использования:

def f[A](it: Iterator[A]) = {
 if (it.hasNext) {            // Safe to reuse "it" after "hasNext"
   it.next()                  // Safe to reuse "it" after "next"
   val remainder = it.drop(2) // it is *not* safe to use "it" again after this line!
   remainder.take(2)          // it is *not* safe to use "remainder" after this line!
 } else it
}
Надтипы
Тракт IterableOnceOps[A, Iterator, Iterator[A]]
Тракт IterableOnce[A]
Класс Object
Тракт Matchable
Класс Any
Известные подтипы
Класс AbstractIterator[A]
Класс GroupedIterator[B]
Класс BufferedLineIterator
Класс LineIterator
Класс MatchIterator
Тракт BufferedIterator[A]
Класс Source
Класс BufferedSource
Тип самого себя
Iterator[A]

Классы

Исходный код
Класс GroupedIterator[B >: A](self: Iterator[B], size: Int, step: Int) extends AbstractIterator[Seq[B]]

Гибкий итератор для преобразования Iterator[A] в Iterator[Seq[A]] с настраиваемым размером последовательности, шагом и стратегией обработки элементов, которые не подходят равномерно.

Типичные применения могут быть реализованы с помощью методов grouped и sliding.

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

Исходный код
def hasNext: Boolean

Проверяет наличие следующего элемента.

Возвращает

true если следующий элемент существует, false в противном случае

Примечание

Повторное использование: итератор остается валидным для дальнейшего использования независимо от возвращаемого результата.

Исходный код@throws(scala.throws.$lessinit$greater$default$1[scala.NoSuchElementException])
def next(): A

Возвращает следующий элемент и продвигает итератор.

Возвращает

следующий элемент.

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

если следующего элемента нет.

Примечание

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

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

Исходный код@inline
final def ++[B >: A](xs: => IterableOnce[B]): Iterator[B]

Исходный код
def buffered: BufferedIterator[A]

Создает буферизованный итератор из данного итератора.

Возвращает

буферизованный итератор, генерирующий те же значения, что и данный итератор.

См. также

scala.collection.BufferedIterator

Примечание

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

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

Исходный код
def concat[B >: A](xs: => IterableOnce[B]): Iterator[B]

Исходный код
def contains(elem: Any): Boolean

Проверяет, содержит ли этот итератор заданное значение в качестве элемента.

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

Параметры
elem

тестируемый элемент.

Возвращает

true если этот итератор генерирует какое-либо значение, которое равно (как определяется ==) elem, false в противном случае.

Примечание

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

Исходный код
def distinct: Iterator[A]

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

Возвращает

итератор с уникальными элементами

Примечание

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

Исходный код
def distinctBy[B](f: A => B): Iterator[A]

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

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

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

Параметры
f

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

Возвращает

итератор с уникальными элементами

Примечание

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

Исходный код
def drop(n: Int): Iterator[A]

Исходный код
def dropWhile(p: A => Boolean): Iterator[A]

Исходный код
def duplicate: (Iterator[A], Iterator[A])

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

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

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

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

Примечание

Реализация может выделять временное хранилище для элементов, перебираемых одним итератором, но ещё не перебираемых другим.

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

Источник
def filter(p: A => Boolean): Iterator[A]

Источник
def filterNot(p: A => Boolean): Iterator[A]

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

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

Источник
def grouped[B >: A](size: Int): GroupedIterator[B]

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

// Returns List(List(1, 2, 3), List(4, 5, 6), List(7)))
(1 to 7).iterator.grouped(3).toList
// Returns List(List(1, 2, 3), List(4, 5, 6))
(1 to 7).iterator.grouped(3).withPartial(false).toList
// Returns List(List(1, 2, 3), List(4, 5, 6), List(7, 20, 25)
// Illustrating that withPadding's argument is by-name.
val it2 = Iterator.iterate(20)(_ + 5)
(1 to 7).iterator.grouped(3).withPadding(it2.next).toList
Примечание

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

Источник
def indexOf[B >: A](elem: B): Int

Возвращает индекс первого вхождения указанного объекта в этом итерируемом объекте.

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

Параметры
elem

элемент, для поиска.

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

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

Примечание

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

Источник
def indexOf[B >: A](elem: B, from: Int): Int

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

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

Параметры
elem

элемент, для поиска.

from

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

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

индекс >= from первого вхождения elem в значениях, производимых этим итератором, или -1, если такой элемент не существует до тех пор, пока не будет достигнут конец итератора.

Примечание

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

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

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

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

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

Источник@inline
final def length: Int

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

Источник
def nextOption(): Option[A]

Оборачивает значение next() в опцию.

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

Some(next) если следующий элемент существует, None в противном случае.

Источник
def padTo[B >: A](len: Int, elem: B): Iterator[B]

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

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

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

Параметры
elem

значение заполнения

len

целевая длина

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

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

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

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

Параметры
p

предикат, по которому разделять

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

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

Примечание

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

Источник
def patch[B >: A](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]

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

Параметры
from

Начальный индекс замены

patchElems

Итератор значений для замены

replaced

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

Примечание

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

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

Проверяет, сравниваются ли соответствующие элементы заданной итерируемой коллекции (с точки зрения ==) с элементами этого итератора.

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

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

Параметры
that

коллекция для сравнения

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

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

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

Source
def slice(from: Int, until: Int): Iterator[A]

Source
def sliding[B >: A](size: Int, step: Int): GroupedIterator[B]

Возвращает итератор, представляющий «скользящее окно» вида этого итератора. Первый аргумент — размер окна, а второй аргумент — на сколько сдвигать окно на каждой итерации. По умолчанию второй аргумент step равен 1.

Возвращаемый GroupedIterator итератор может быть настроен на заполнение частичного результата до размера size или на подавление частичного результата полностью.

Примеры использования:

// Returns List(ArraySeq(1, 2, 3), ArraySeq(2, 3, 4), ArraySeq(3, 4, 5))
(1 to 5).iterator.sliding(3).toList
// Returns List(ArraySeq(1, 2, 3, 4), ArraySeq(4, 5))
(1 to 5).iterator.sliding(4, 3).toList
// Returns List(ArraySeq(1, 2, 3, 4))
(1 to 5).iterator.sliding(4, 3).withPartial(false).toList
// Returns List(ArraySeq(1, 2, 3, 4), ArraySeq(4, 5, 20, 25))
// Illustrating that withPadding's argument is by-name.
val it2 = Iterator.iterate(20)(_ + 5)
(1 to 5).iterator.sliding(4, 3).withPadding(it2.next).toList
Параметры значения
size

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

step

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

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

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

Примечание

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

Source
def span(p: A => Boolean): (Iterator[A], Iterator[A])

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

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

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

Примечание

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

Source
def take(n: Int): Iterator[A]

Source
def takeWhile(p: A => Boolean): Iterator[A]

Source
override def tapEach[U](f: A => U): Iterator[A]

Классы-предки IterableOnceOps

Source
override def toString: String

Преобразует этот итератор в строку.

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

"<iterator>"

Примечание

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

Классы-предки Any

Source
def withFilter(p: A => Boolean): Iterator[A]

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

Примечание: withFilter то же самое, что filter для итераторов. Оно существует для того, чтобы выражения for с фильтрами работали над итераторами.

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

предикат для проверки значений.

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

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

Примечание

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

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

Source
def zipAll[A1 >: A, B](that: IterableOnce[B], thisElem: A1, thatElem: B): Iterator[(A1, B)]

Source
def zipWithIndex: Iterator[(A, Int)]

Методы-предки

Source@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

Source@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

Source
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

Source
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

Исходный код
def exists(p: A => Boolean): Boolean

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

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

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

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

Возвращает

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

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

Исходный код
def find(p: A => Boolean): Option[A]

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

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

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

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

Возвращает

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

значение option, содержащее наибольший элемент этой коллекции относительно упорядочения 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, содержащее результат применения редуцирующего оператора 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 splitAt(n: Int): (Iterator[A], Iterator[A])

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

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

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

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

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

Возвращает

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

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

Унаследовано от 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

Source
def toIndexedSeq: IndexedSeq[A]

Inherited from IterableOnceOps

Source
def toList: List[A]

Inherited from IterableOnceOps

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

Inherited from IterableOnceOps

Source
def toSeq: Seq[A]

Возвращает

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

Inherited from IterableOnceOps

Source
def toSet[B >: A]: Set[B]

Inherited from IterableOnceOps

Source
def toVector: Vector[A]

Inherited from 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/Iterator.html

Spec-Zone.ru

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