Трейт scala.collection.Iterator
Компаньон объект Iterator
trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Iterator[A]]
Члены типа
класс GroupedIterator[B >: A] extends AbstractIterator[immutable.Seq[B]]
Гибкий итератор для преобразования Iterator[A] в Iterator[Seq[A]] с настраиваемым размером последовательности, шагом и стратегией обработки элементов, которые не вписываются равномерно.
Типичные примеры использования можно реализовать с помощью методов grouped и sliding.
Абстрактные члены значения
абстрактный def hasNext: Boolean
Проверка наличия следующего элемента.
- возвращает
true, если следующий элемент есть,falseв противном случае
- Примечание
Повторное использование: итератор остаётся валидным для дальнейшего использования независимо от возвращаемого результата.
абстрактный def next(): A
Возвращение следующего элемента и продвижение итератора.
- возвращает
следующий элемент.
- Аннотации
- @throws(scala.this.throws.<init>$default$1[NoSuchElementException])
- Исключения
NoSuchElementException, если следующего элемента нет.- Примечание
Повторное использование: продвигает итератор, что может исчерпать элементы. Допустимо выполнять дополнительные вызовы итератора.
Члены конкретных значений
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
true, если !(this == that), иначе false.
- Definition Classes
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для чисел он возвращает хеш-значение, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одно и то же хеш-значение для каждого из них. Для null возвращает хешкод, где null.hashCode выбрасывает NullPointerException.
- returns
хеш-значение, согласованное с ==
- Definition Classes
- AnyRef → Any
def +(other: String): String
- Implicit
- Этот член добавлен неявным преобразованием из Iterator[A] вany2stringadd[Iterator[A]] с помощью метода any2stringadd в scala.Predef.
- Definition Classes
- any2stringadd
final def ++[B >: A](xs: => IterableOnce[B]): Iterator[B]
- Annotations
- @inline()
def ->[B](y: B): (Iterator[A], B)
- Неявный
- Этот член добавлен неявным преобразованием из Iterator[A] в ArrowAssoc[Iterator[A]] с помощью метода ArrowAssoc в scala.Predef.
- Классы определений
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
true, если объект получателя эквивалентен аргументу;falseв противном случае.
- Классы определений
- AnyRef → Any
final def addString(b: mutable.StringBuilder): mutable.StringBuilder
Добавляет все элементы этого набора в строковый буфер. Записанный текст состоит из строковых представлений (относительно метода toString) всех элементов этого набора без разделительной строки.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> val h = a.addString(b) h: StringBuilder = 1234
- b
строковый буфер, в который добавляются элементы.
- возвращает
строковый буфер
b, в который были добавлены элементы.
- Классы определений
- IterableOnceOps
- Аннотации
- @inline()
final def addString(b: mutable.StringBuilder, sep: String): mutable.StringBuilder
Добавляет все элементы этого набора в строковый буфер, используя разделительную строку. Записанный текст состоит из строковых представлений (относительно метода toString) всех элементов этого набора, разделенных строкой sep.
Пример:
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder() b: StringBuilder = scala> a.addString(b, ", ") res0: StringBuilder = 1, 2, 3, 4
- b
строковый буфер, в который добавляются элементы.
- sep
разделительная строка.
- возвращает
строковый буфер
b, в который были добавлены элементы.
- Классы определений
- IterableOnceOps
- Аннотации
- @inline()
def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.StringBuilder
Добавляет все элементы этого набора в строковый буфер, используя строки start, end и разделитель. Текст, который будет выведен, начинается со строки start и заканчивается строкой end. Внутри, строковые представления (относительно метода toString) всех элементов этого набора разделяются строкой sep.
Пример:
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
scala> val b = new StringBuilder()
b: StringBuilder =
scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
- b
строковый буфер, в который добавляются элементы.
- start
начальная строка.
- sep
строка-разделитель.
- end
конечная строка.
- returns
строковый буфер
b, в который были добавлены элементы.
- Definition Classes
- IterableOnceOps
final def asInstanceOf[T0]: T0
Преобразует получаемый объект в тип T0.
Обратите внимание, что успех приведения типа во время выполнения зависит от правил стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка нужному типу.
- returns
получаемый объект.
- Definition Classes
- Any
- Exceptions thrown
ClassCastException, если получаемый объект не является экземпляром стираемого типаT0.
def buffered: BufferedIterator[A]
Создаёт буферизованный итератор из этого итератора.
- returns
буферизованный итератор, производящий те же значения, что и этот итератор.
- Note
Переиспользование: После вызова этого метода старый итератор следует отбросить, используя только возвращённый итератор. Использование старого итератора является неопределённым, может быть изменено и может привести к изменениям в новом итераторе.
- See also
def clone(): AnyRef
Создайте копию объекта-приёмника.
Реализация метода clone по умолчанию зависит от платформы.
- возвращает
копию объекта-приёмника.
def collect[B](pf: PartialFunction[A, B]): Iterator[B]
Создаёт новый итератор, применяя частичную функцию ко всем элементам этого итератора, для которых функция определена.
- B
тип элементов возвращаемого итератора.
- pf
частичная функция, которая фильтрует и отображает итератор.
- возвращает
новый итератор, полученный путём применения данной частичной функции
pfк каждому элементу, для которого она определена, и собирая результаты. Порядок элементов сохраняется.
- Классы определений
- Iterator → IterableOnceOps
- Примечание
Использование: После вызова этого метода следует отбросить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе тоже.
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]
Находит первый элемент коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- pf
частичная функция
- возвращает
значение типа Option, содержащее pf, применённое к первому значению, для которого оно определено, или
None, если такового не существует.
- Классы определений
- IterableOnceOps
Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)
def concat[B >: A](xs: => IterableOnce[B]): Iterator[B]
def contains(elem: Any): Boolean
Проверяет, содержит ли этот итератор заданное значение в качестве элемента.
Примечание: может не завершиться для бесконечных итераторов.
- elem
элемент для проверки.
- returns
true, если этот итератор производит какое-либо значение, равное (как определяется==)elem,falseв противном случае.
- Note
Переиспользование: После вызова этого метода необходимо удалить итератор, на котором он был вызван. Его использование не определено и может измениться.
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs, начиная с индекса start, не более чем len элементами этого набора.
Копирование прекратится, как только будут скопированы все элементы этого набора, или будет достигнут конец массива, или len элементов.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс xs.
- len
максимальное количество копируемых элементов.
- returns
количество элементов, записанных в массив
- Definition Classes
- IterableOnceOps
- Note
Переиспользование: После вызова этого метода необходимо удалить итератор, на котором он был вызван. Его использование не определено и может измениться. Примечание: не завершится для бесконечно больших наборов.
def copyToArray[B >: A](xs: Array[B], start: Int): Int
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs, начиная с индекса start, значениями из этого набора.
Копирование прекратится, как только будут скопированы все элементы этого набора, или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс xs.
- returns
количество элементов, записанных в массив. Примечание: не завершится для бесконечно больших наборов.
- Definition Classes
- IterableOnceOps
def copyToArray[B >: A](xs: Array[B]): Int
Копирует элементы в массив, возвращая количество скопированных элементов.
Заполняет заданный массив xs, начиная с индекса start, значениями из этого набора.
Копирование прекратится, как только будут скопированы все элементы этого набора или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
- returns
количество скопированных элементов в массив. Примечание: не будет завершаться для наборов бесконечной длины.
- Definition Classes
- IterableOnceOps
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean
Проверяет, соответствуют ли элементы итератора этого набора соответствующим элементам другого набора, удовлетворяя условию предиката.
- B
тип элементов
that- that
другой набор
- p
предикат, который сравнивает элементы обоих наборов
- returns
true, если оба набора имеют одинаковую длину иp(x, y)являетсяtrueдля всех соответствующих элементовxэтого итератора иythat, в противном случаеfalse
- Definition Classes
- IterableOnceOps
def count(p: (A) => Boolean): Int
Подсчитывает количество элементов в наборе, которые удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- returns
количество элементов, удовлетворяющих предикату
p.
- Definition Classes
- IterableOnceOps
def distinct: Iterator[A]
Создаёт новый итератор из этого без дублирующихся элементов.
- returns
итератор с уникальными элементами
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван. Использование его не определено и может измениться.
def distinctBy[B](f: (A) => B): Iterator[A]
Создаёт новый итератор из этого, без дублирующих элементов, как определено == после применения преобразовательной функции f.
- B
тип элементов после преобразования функцией
f- f
Преобразующая функция, результат которой используется для определения уникальности каждого элемента
- returns
итератор с уникальными элементами
- Note
Переиспользование: После вызова этого метода, следует удалить вызываемый итератор. Использование его не определено и может быть изменено.
def drop(n: Int): Iterator[A]
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- n
количество элементов, которые нужно удалить из этого итератора.
- returns
итератор, состоящий из всех элементов этого итератора, кроме первых
nэлементов, или пустой итератор, если у этого итератора меньше, чемnэлементов. Еслиnотрицательное, не удалять элементы.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода, следует удалить вызываемый итератор и использовать только возвращённый итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def dropWhile(p: (A) => Boolean): Iterator[A]
Удаляет самый длинный префикс элементов, которые удовлетворяют предикату.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- p
Предикат, используемый для проверки элементов.
- returns
наибольший суффикс этого итератора, чьи первые элементы не удовлетворяют предикату
p.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода, следует удалить вызываемый итератор и использовать только возвращённый итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def duplicate: (Iterator[A], Iterator[A])
Создаёт два новых итератора, которые оба итерируют по тем же элементам, что и этот итератор (в том же порядке). Дублирующие итераторы считаются равными, если они находятся на том же элементе.
Учитывая, что большинство методов итераторов сделают исходный итератор непригодным для дальнейшего использования, этот метод обеспечивает надёжный способ вызова нескольких таких методов на итераторе.
- возвращает
пару итераторов
- Примечание
-
Реализация может выделять временное хранилище для элементов, перебираемых одним итератором, но ещё не перебираемых другим.
,Использование: После вызова этого метода следует удалить вызываемый итератор и использовать только возвращённые итераторы. Использование старого итератора не определено, может измениться и может привести к изменениям в новых итераторах тоже.
def ensuring(cond: (Iterator[A]) => Boolean, msg: => Any): Iterator[A]
- Неявный
- Этот член добавлен неявным преобразованием из Iterator[A] вEnsuring[Iterator[A]] выполненным методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Iterator[A]) => Boolean): Iterator[A]
- Неявный
- Этот член добавлен неявным преобразованием из Iterator[A] вEnsuring[Iterator[A]] выполненным методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Iterator[A]
- Неявный
- Этот член добавлен неявным преобразованием из Iterator[A] в Ensuring[Iterator[A]] при помощи метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
def ensuring(cond: Boolean): Iterator[A]
- Неявный
- Этот член добавлен неявным преобразованием из Iterator[A] в Ensuring[Iterator[A]] при помощи метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на получаемый объект (this).
Метод eq реализует отношение эквивалентности на непустых экземплярах типа AnyRef и обладает тремя дополнительными свойствами:
-
Он согласован: для любых непустых экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают значение true или последовательно возвращают значение false. Для любого непустого экземпляра x типа AnyRef вызовы x.eq(null) и null.eq(x) возвращают значение false.
null.eq(null) возвращает значение true.При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством по ссылке. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковый хэш-код (o1.hashCode == o2.hashCode).
- возвращает
true, если аргумент является ссылкой на получаемый объект;falseв противном случае.
- Классы-определения
- AnyRef
def equals(arg0: AnyRef): Boolean
def exists(p: (A) => Boolean): Boolean
Проверяет, выполняется ли предикат для хотя бы одного элемента в этом наборе.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
true, если заданный предикатpвыполняется для хотя бы одного элемента в этом наборе, иначеfalse
- Definition Classes
- IterableOnceOps
def filter(p: (A) => Boolean): Iterator[A]
Выбирает все элементы этого итератора, удовлетворяющие предикату.
- p
предикат, используемый для проверки элементов.
- returns
новый итератор, содержащий все элементы этого итератора, удовлетворяющие заданному предикату
p. Порядок элементов сохраняется.
- Definition Classes
- Iterator → IterableOnceOps
def filterNot(p: (A) => Boolean): Iterator[A]
Выбирает все элементы этого итератора, не удовлетворяющие предикату.
- returns
новый итератор, содержащий все элементы этого итератора, не удовлетворяющие заданному предикату
pred. Порядок элементов может быть не сохранён.
- Definition Classes
- Iterator → IterableOnceOps
def finalize(): Unit
Вызывается сборщиком мусора для объекта-приёмника, когда к объекту больше нет ссылок.
Детали того, когда и будет ли вызываться метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
def find(p: (A) => Boolean): Option[A]
Находит первый элемент коллекции, удовлетворяющий предикату, если таковой имеется.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип лежащей в основе коллекции не упорядочен.
- p
предикат, используемый для проверки элементов.
- returns
значение типа Option, содержащее первый элемент в коллекции, удовлетворяющий условию
p, илиNone, если такового нет.
- Definition Classes
- IterableOnceOps
def flatMap[B](f: (A) => IterableOnce[B]): Iterator[B]
Создаёт новый итератор, применяя функцию ко всем элементам этого итератора и используя элементы полученных коллекций.
Например:
def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")
Тип результирующей коллекции определяется статическим типом итератора. Это иногда может привести к неожиданным результатам. Например:
// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)
// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)
// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)
// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
- B
тип элементов возвращаемой коллекции.
- f
функция, применяемая к каждому элементу.
- returns
новый итератор, полученный путём применения заданной функции, возвращающей коллекцию
f, к каждому элементу этого итератора и конкатенации результатов.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: после вызова этого метода, старый итератор следует удалить, используя только возвращённый. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def flatten[B](implicit ev: (A) => IterableOnce[B]): Iterator[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
тип элементов каждой перебираемой коллекции.
- returns
новый итератор, полученный путём конкатенации всех итераторов элементов.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: после вызова этого метода, старый итератор следует удалить, используя только возвращённый. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Складывает элементы этого набора, используя указанный ассоциативный бинарный оператор. По умолчанию реализация в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективного порядка обхода.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Примечание: не завершится для наборов бесконечного размера.
- A1
параметр типа для бинарного оператора, надтип
A.- z
нейтральный элемент для операции сложения; может быть добавлен к результату произвольное количество раз и не должен изменять результат (например,
Nilдля конкатенации списков, 0 для сложения или 1 для умножения).- op
бинарный оператор, который должен быть ассоциативным.
- returns
результат применения оператора сложения
opмежду всеми элементами иz, илиz, если этот набор пуст.
- Definition Classes
- IterableOnceOps
def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этого набора слева направо.
Примечание: не завершится для наборов бесконечного размера.
Примечание: может вернуть разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого набора слева направо с начальным значениемzслева:op(...op(z, x_1), x_2, ..., x_n)
где
x1, ..., xn— элементы этого набора. Возвращаетz, если этот набор пуст.
- Definition Classes
- IterableOnceOps
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого набора и начальному значению, справа налево.
Примечание: не завершится для наборов бесконечного размера.
Примечание: может вернуть разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого набора справа налево с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn— элементы этого набора. Возвращаетz, если этот набор пуст.
- Definition Classes
- IterableOnceOps
def forall(p: (A) => Boolean): Boolean
Проверяет, выполняется ли предикат для всех элементов этого набора.
Примечание: может не завершиться для наборов бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
true, если этот набор пуст или заданный предикатpвыполняется для всех элементов этого набора, в противном случаеfalse.
- Definition Classes
- IterableOnceOps
def foreach[U](f: (A) => U): Unit
Применяет f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.
- Definition Classes
- IterableOnceOps
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой форматирования. Строки форматирования аналогичны строкам форматирования Java (@see java.lang.String.format).
- Implicit
- Этот член добавлен неявным преобразованием из Iterator[A] в StringFormat[Iterator[A]], выполняемое методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу получателя во время выполнения.
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 hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение хэш-кода для этого объекта.
def indexOf[B >: A](elem: B, from: Int): Int
Возвращает индекс первого вхождения указанного объекта в этом итерируемом объекте после или на некотором начальном индексе.
Примечание: может не завершиться для бесконечных итераторов.
- elem
элемент для поиска.
- from
начальный индекс
- возвращает
индекс
>= fromпервого вхожденияelemв значениях, производимых этим итератором, или -1, если такого элемента нет до конца итератора.
- Примечание
Повторное использование: после вызова этого метода следует удалить итератор, на котором он был вызван. Его использование не определено и может измениться.
def indexOf[B >: A](elem: B): Int
Возвращает индекс первого вхождения указанного объекта в этом итерируемом объекте.
Примечание: может не завершиться для бесконечных итераторов.
- elem
элемент для поиска.
- возвращает
индекс первого вхождения
elemв значениях, производимых этим итератором, или -1, если такого элемента нет до конца итератора.
- Примечание
Повторное использование: после вызова этого метода следует удалить итератор, на котором он был вызван. Его использование не определено и может измениться.
def indexWhere(p: (A) => Boolean, from: Int = 0): Int
def isEmpty: Boolean
Проверяет, пуст ли итератор.
Примечание: Реализации в подклассах, которые не являются многократно проходимыми, должны позаботиться о том, чтобы не потреблять никаких элементов, когда isEmpty вызывается.
- returns
true, если итератор не содержит элементов,falseв противном случае.
- Definition Classes
- Iterator → IterableOnceOps
- Annotations
- @deprecatedOverriding("isEmpty is defined as !hasNext; override hasNext instead", "2.13.0")
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки зависит от семантики стирания в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как тип аргумента стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка указанному типу.
- returns
true, если объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Definition Classes
- Any
def isTraversableAgain: Boolean
Проверяет, можно ли многократно пройти по этому набору. Всегда true для Iterable и false для Iterator, если не переопределено.
- returns
true, если многократный проход возможен,falseв противном случае.
- Definition Classes
- IterableOnceOps
final def iterator: Iterator[A]
Итератор можно использовать только один раз
- Definition Classes
- Iterator → IterableOnce
- Annotations
- @inline()
def knownSize: Int
- returns
Количество элементов в этом наборе, если его можно вычислить без затрат, -1 в противном случае. Без затрат обычно означает: без прохода по набору.
- Definition Classes
- IterableOnce
final def length: Int
- Annotations
- @inline()
def map[B](f: (A) => B): Iterator[B]
Создаёт новый итератор, применяя функцию ко всем элементам этого итератора.
- B
тип элементов возвращаемого итератора.
- f
функция, которая применяется к каждому элементу.
- returns
новый итератор, полученный путём применения заданной функции
fк каждому элементу этого итератора и сборки результатов.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределено, может быть изменено и может привести к изменениям в новом итераторе также.
def max[B >: A](implicit ord: math.Ordering[B]): A
Находит наибольший элемент.
- B
Тип, по которому определено упорядочение.
- ord
Упорядочение, используемое для сравнения элементов.
- returns
наибольший элемент этой коллекции относительно порядка
ord.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если эта коллекция пустая.
def maxBy[B](f: (A) => B)(implicit cmp: math.Ordering[B]): A
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Упорядочение, используемое для сравнения элементов.
- returns
первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно упорядочения
cmp.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если эта коллекция пуста.
def maxByOption[B](f: (A) => B)(implicit cmp: math.Ordering[B]): Option[A]
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, используемый для сравнения элементов.
- returns
значение Option, содержащее первый элемент этого набора с наибольшим значением, измеренным функцией f относительно порядка
cmp.
- Definition Classes
- IterableOnceOps
def maxOption[B >: A](implicit ord: math.Ordering[B]): Option[A]
Находит наибольший элемент.
- B
Тип, по которому определён порядок.
- ord
Порядок, используемый для сравнения элементов.
- returns
значение Option, содержащее наибольший элемент этого набора по отношению к порядку
ord.
- Definition Classes
- IterableOnceOps
def min[B >: A](implicit ord: math.Ordering[B]): A
Находит наименьший элемент.
- B
Тип, по которому определён порядок.
- ord
Порядок, используемый для сравнения элементов.
- returns
наименьший элемент этого набора по отношению к порядку
ord.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если этот набор пустой.
def minBy[B](f: (A) => B)(implicit cmp: math.Ordering[B]): A
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, используемый для сравнения элементов.
- returns
первый элемент этого набора с наименьшим значением, измеренным функцией f относительно порядка
cmp.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если этот набор пуст.
def minByOption[B](f: (A) => B)(implicit cmp: math.Ordering[B]): Option[A]
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, используемый для сравнения элементов.
- returns
значение Option, содержащее первый элемент этого набора с наименьшим значением, измеренным функцией f относительно порядка
cmp.
- Definition Classes
- IterableOnceOps
def minOption[B >: A](implicit ord: math.Ordering[B]): Option[A]
Находит наименьший элемент.
- B
Тип, над которым определён порядок.
- ord
Порядок, используемый для сравнения элементов.
- returns
значение Option, содержащее наименьший элемент этого набора относительно порядка
ord.
- Definition Classes
- IterableOnceOps
final def mkString: String
Отображает все элементы этого набора в строке.
Делегирует addString, который можно переопределить.
- returns
строковое представление этого набора. В результирующей строке строковые представления (с помощью метода
toString) всех элементов этого набора следуют друг за другом без разделительной строки.
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
final def mkString(sep: String): String
Отображает все элементы этого набора в строке с использованием разделителя.
Делегирует addString, который можно переопределить.
- sep
строка-разделитель.
- returns
строковое представление этого набора. В результирующей строке строковые представления (относительно метода
toString) всех элементов этого набора разделены строкойsep.
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
List(1, 2, 3).mkString("|") = "1|2|3"
final def mkString(start: String, sep: String, end: String): String
Отображает все элементы этого набора в строке, используя начальную, конечную и разделительные строки.
Делегирует addString, который можно переопределить.
- start
начальная строка.
- sep
строка-разделитель.
- end
конечная строка.
- returns
строковое представление этого набора. Результирующая строка начинается со строки
startи заканчивается строкойend. Внутри строковые представления (относительно методаtoString) всех элементов этого набора разделены строкойsep.
- Definition Classes
- IterableOnceOps
List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- returns
true, если аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def nextOption(): Option[A]
Оборачивает значение next() в опцию.
- returns
Some(next), если следующий элемент существует;Noneв противном случае.
def nonEmpty: Boolean
Проверяет, не является ли коллекция пустой.
- возвращает
true, если коллекция содержит по крайней мере один элемент,falseв противном случае.
- Определяющие классы
- IterableOnceOps
- Аннотации
- @deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
final def notify(): Unit
Разбуждает один поток, ожидающий монитор объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
final def notifyAll(): Unit
Разбуждает все потоки, ожидающие монитор объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
def padTo[B >: A](len: Int, elem: B): Iterator[B]
Копия этого итератора с добавленными значениями элемента до достижения заданной целевой длины.
- B
тип элементов возвращаемого итератора.
- len
целевая длина
- elem
значение дополнения
- возвращает
новый итератор, состоящий из всех элементов этого итератора, за которым следует минимальное количество появлений
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
Количество значений в исходном итераторе, которые заменяются изменением.
- Note
Использование: после вызова этого метода следует удалить итератор, на котором он был вызван, а также переданный в качестве параметра, и использовать только возвращённый итератор. Использование старых итераторов не определено, может быть изменено и может привести к изменениям в новом итераторе также.
def product[B >: A](implicit num: math.Numeric[B]): B
Перемножает элементы этого набора.
- B
тип результата операции
*.- num
неявный параметр, определяющий набор числовых операций, который включает операцию
*, используемую для образования произведения.- returns
произведение всех элементов этого набора относительно операции
*вnum.
- Definition Classes
- IterableOnceOps
def reduce[B >: A](op: (B, B) => B): B
Сводит элементы этого набора, используя указанную ассоциативную бинарную операцию.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
- B
Параметр типа для бинарной операции, сверхтип
A.- op
Бинарная операция, которая должна быть ассоциативной.
- returns
Результат применения оператора reduce
opмежду всеми элементами, если набор не пустой.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если этот набор пустой.
def reduceLeft[B >: A](op: (B, A) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этой коллекции слева направо:op( op( ... op(x_1, x_2) ..., x_{n-1}), x_n)где
x1, ..., xn- элементы этой коллекции.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если эта коллекция пуста.
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Необязательно применяет бинарный оператор ко всем элементам этой коллекции слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
значение типа Option, содержащее результат
reduceLeft(op), если эта коллекция не пуста,Noneв противном случае.
- Definition Classes
- IterableOnceOps
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Сводит элементы этой коллекции, если таковые имеются, используя указанный ассоциативный бинарный оператор.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
- B
Тип параметра для бинарного оператора, надтип
A.- op
Бинарный оператор, который должен быть ассоциативным.
- returns
Значение типа Option, содержащее результат применения оператора reduce
opмежду всеми элементами, если коллекция не пуста, иNoneв противном случае.
- Definition Classes
- IterableOnceOps
def reduceRight[B >: A](op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого набора, справа налево.
Примечание: не завершит работу для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не ассоциативен и не коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого набора, справа налево:op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))где
x1, ..., xn— элементы этого набора.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если этот набор пуст.
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Возвращает необязательное значение результата применения бинарного оператора ко всем элементам этого набора, справа налево.
Примечание: не завершит работу для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не ассоциативен и не коммутативен.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
значение типа Option, содержащее результат
reduceRight(op), если этот набор непустой,Noneв противном случае.
- Definition Classes
- IterableOnceOps
def reversed: Iterable[A]
- Attributes
- protected
- Definition Classes
- IterableOnceOps
def sameElements[B >: A](that: IterableOnce[B]): Boolean
def scanLeft[B](z: B)(op: (B, A) => B): Iterator[B]
Производит итератор, содержащий кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен.
- B
тип элементов в результирующей коллекции
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- returns
коллекция с промежуточными результатами
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода необходимо отказаться от итератора, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может измениться и может привести к изменениям в новом итераторе.
def size: Int
Размер этой коллекции.
Примечание: не завершится для коллекций бесконечного размера.
- returns
количество элементов в этой коллекции.
- Definition Classes
- IterableOnceOps
def slice(from: Int, until: Int): Iterator[A]
Выбирает интервал элементов. Возвращаемый итератор состоит из всех элементов x, которые удовлетворяют инварианту:
from <= indexOf(x) < until
Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен.
- from
наименьший индекс для включения из этого итератора.
- until
наименьший индекс для ИСКЛЮЧЕНИЯ из этого итератора.
- returns
итератор, содержащий элементы, большие или равные индексу
from, простирающийся до (но не включая) индексuntilэтого итератора.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода необходимо отказаться от итератора, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может измениться и может привести к изменениям в новом итераторе.
def sliceIterator(from: Int, until: Int): Iterator[A]
Создаёт необязательно ограниченный срез, неограниченный, если until отрицательный.
- Attributes
- protected
def sliding[B >: A](size: Int, step: Int = 1): GroupedIterator[B]
Возвращает итератор, представляющий «скользящее окно» представления этого итератора. Первый аргумент — размер окна, а второй аргумент step — на сколько смещать окно на каждой итерации. step по умолчанию равно 1.
По умолчанию GroupedIterator можно настроить так, чтобы заполнить частичный результат до размера size или полностью подавить частичный результат.
Примеры использования:
// Returns List(List(1, 2, 3), List(2, 3, 4), List(3, 4, 5)) (1 to 5).iterator.sliding(3).toList // Returns List(List(1, 2, 3, 4), List(4, 5)) (1 to 5).iterator.sliding(4, 3).toList // Returns List(List(1, 2, 3, 4)) (1 to 5).iterator.sliding(4, 3).withPartial(false).toList // Returns List(List(1, 2, 3, 4), List(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
- returns
Итератор, генерирующий
Seq[B]размеромsize, за исключением последнего элемента (который может быть единственным элементом), который будет усечен, если оставшихся элементов для группировки меньше, чемsize. Это поведение можно настроить.
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только итератор, который был возвращен. Использование старого итератора не определено, может измениться и может привести к изменениям в новом итераторе тоже.
def span(p: (A) => Boolean): (Iterator[A], Iterator[A])
Разделяет этот итератор на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
- p
предикат проверки
- returns
пара, состоящая из самого длинного префикса этого итератора, элементы которого удовлетворяют всем требованиям
p, и остатка этого итератора.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только возвращенные итераторы. Использование старого итератора не определено, может измениться и может привести к изменениям в новых итераторах тоже.
def splitAt(n: Int): (Iterator[A], Iterator[A])
Разделяет эту коллекцию на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
- n
позиция, в которой нужно разделить.
- returns
пара коллекций, состоящих из первых
nэлементов этой коллекции и других элементов.
- Definition Classes
- IterableOnceOps
- Note
Использование: после вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только возвращенные итераторы. Использование старого итератора не определено, может измениться и может привести к изменениям в новых итераторах также.
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S
Возвращает Stepper для элементов этой коллекции.
Stepper позволяет создать поток Java для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper можно использовать как итератор, который не упаковывает элементы.
Неявный параметр StepperShape определяет тип возвращаемого Stepper в соответствии с типом элемента этой коллекции.
-
Для коллекций
Int, Short, Byte или Char возвращается IntStepperДля коллекций Double или Float возвращается DoubleStepperДля коллекций Long возвращается LongStepperДля любого другого типа элементов возвращается AnyStepperОбратите внимание, что этот метод переопределен в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например, IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper можно преобразовать только в последовательные потоки.
- Definition Classes
- IterableOnce
def sum[B >: A](implicit num: math.Numeric[B]): B
Суммирует элементы этого набора.
- B
тип результата оператора
+.- num
явный параметр, определяющий набор числовых операций, который включает оператор
+, используемый для формирования суммы.- возвращает
сумму всех элементов этого набора относительно оператора
+вnum.
- Определяющие классы
- IterableOnceOps
final def synchronized[T0](arg0: => T0): T0
- Определяющие классы
- AnyRef
def take(n: Int): Iterator[A]
Выбирает первые n элементов.
Примечание: могут быть получены разные результаты для разных запусков, если тип базового набора не упорядочен.
- n
количество элементов для взятия из этого итератора.
- возвращает
итератор, содержащий только первые
nэлементов этого итератора, или весь итератор, если он содержит меньшеnэлементов. Еслиnотрицательно, возвращает пустой итератор.
- Определяющие классы
- Iterator → IterableOnceOps
- Примечание
Переиспользование: После вызова этого метода необходимо удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределённо, может измениться и может привести к изменениям в новом итераторе.
def takeWhile(p: (A) => Boolean): Iterator[A]
Берет самый длинный префикс элементов, удовлетворяющих предикату.
Примечание: могут быть получены разные результаты для разных запусков, если тип базового набора не упорядочен.
- p
Предикат, используемый для проверки элементов.
- возвращает
наибольший префикс этого итератора, чьи элементы удовлетворяют предикату
p.
- Определяющие классы
- Iterator → IterableOnceOps
- Примечание
Переиспользование: После вызова этого метода необходимо удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределённо, может измениться и может привести к изменениям в новом итераторе.
def tapEach[U](f: (A) => U): Iterator[A]
Применяет функцию со побочным эффектом к каждому элементу в этом наборе. Строгие коллекции применят f к своим элементам немедленно, в то время как ленивые коллекции, такие как Views и LazyLists, будут применять f только к каждому элементу, если и когда этот элемент будет вычисляться, и каждый раз, когда этот элемент вычисляется.
- U
тип возвращаемого значения f
- f
функция, которая должна быть применена к каждому элементу в этом итераторе
- returns
Такая же логическая коллекция, как и эта
- Definition Classes
- Итератор → IterableOnceOps
def to[C1](factory: Factory[A, C1]): C1
Учитывая фабрику коллекций factory, преобразуйте эту коллекцию в соответствующее представление для текущего типа элемента A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
- Definition Classes
- IterableOnceOps
def toArray[B >: A](implicit arg0: ClassTag[B]): Массив[B]
Преобразовать коллекцию в массив.
- Definition Classes
- IterableOnceOps
final def toBuffer[B >: A]: Буфер[B]
- Definition Classes
- IterableOnceOps
- Annotations
- @inline()
def toIndexedSeq: immutable.IndexedSeq[A]
- Definition Classes
- IterableOnceOps
def toList: immutable.Список[A]
- Definition Classes
- IterableOnceOps
def toMap[K, V](implicit ev: <:<[A, (K, V)]): immutable.Map[K, V]
- Definition Classes
- IterableOnceOps
def toSeq: immutable.Seq[A]
- возвращает
Этот набор как
Seq[A]. Это эквивалентноto(Seq), но может быть быстрее.
- Definition Classes
- IterableOnceOps
def toSet[B >: A]: immutable.Set[B]
- Definition Classes
- IterableOnceOps
def toString(): String
Преобразует этот итератор в строку.
- возвращает
"<iterator>"
def toVector: immutable.Vector[A]
- Definition Classes
- IterableOnceOps
final def wait(): Unit
- Definition Classes
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
def withFilter(p: (A) => Boolean): Iterator[A]
Создаёт итератор над всеми элементами этого итератора, удовлетворяющими предикату p. Порядок элементов сохраняется.
Примечание: withFilter эквивалентно filter для итераторов. Оно существует для того, чтобы выражения for с фильтрацией работали над итераторами.
- p
предикат, используемый для проверки значений.
- returns
итератор, генерирующий те значения этого итератора, которые удовлетворяют предикату
p.
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределённо, может измениться, и может привести к изменениям в новом итераторе.
def zip[B](that: IterableOnce[B]): Iterator[(A, B)]
def zipAll[A1 >: A, B](that: IterableOnce[B], thisElem: A1, thatElem: B): Iterator[(A1, B)]
def zipWithIndex: Iterator[(A, Int)]
Сцепляет этот итератор с его индексами.
- returns
Новый итератор, содержащий пары, состоящие из всех элементов этого итератора, соединённых с их индексом. Индексы начинаются с
0.
- Definition Classes
- Iterator → IterableOnceOps
- Note
Переиспользование: После вызова этого метода следует удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределённо, может измениться, и может привести к изменениям в новом итераторе.
List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/collection/Iterator.html
Итераторы — это структуры данных, позволяющие итерироваться по последовательности элементов. У них есть метод
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 }