Трейт Stepper.Stepper
трейт Stepper[+A]
Степеры предназначены для создания Java потоков над Scala коллекциями, см. scala.jdk.StreamConverters. Помимо этого использования, они позволяют итерироваться по коллекциям, содержащим необработанные примитивы (например, Array[Int]) без упаковки элементов.
Степеры имеют интерфейс, похожий на итератор, с методами hasStep и nextStep(). Различие с итераторами — и причина, по которой Stepper не является подтипом Iterator — заключается в том, что существуют специализированные варианты Stepper для Int, Long и Double (IntStepper и т. д.). Это позволяет итерироваться по коллекциям, содержащим необработанные примитивы (например, массивы, scala.jdk.Accumulator), без упаковки элементов.
Выбор типов примитивов (Int, Long и Double) соответствует специализированным вариантам Java потоков (java.util.stream.Stream, java.util.stream.IntStream и т. д.) и соответствующим Java разделителям (java.util.Spliterator, java.util.Spliterator.OfInt и т. д.).
Степеры можно преобразовать в Scala итераторы, Java итераторы и Java разделители. Примитивные степеры преобразуются в соответствующие примитивные Java итераторы и разделители.
| Параметры типа |
|
|---|---|
| Надтипы | |
| Известные подтипы |
Абстрактные методы
Исходный код
def characteristics: Int
Возвращает набор характеристик этого степера и его элементов. См. метод characteristics в java.util.Spliterator.
Исходный код
def estimateSize: Long
Возвращает оценку количества элементов этого степера или Long.MaxValue. См. метод estimateSize в java.util.Spliterator.
Исходный код
Проверка наличия элемента.
Исходный код
def javaIterator[B >: A]: Iterator[_]
Возвращает Java java.util.Iterator, соответствующий этому степеру.
Обратите внимание, что возвращаемый тип — Iterator[_] вместо Iterator[A], чтобы разрешить возврат java.util.PrimitiveIterator.OfInt (который является Iterator[Integer]) в подклассе IntStepper (который является Stepper[Int]).
Исходный код
def nextStep(): A
Возвращает следующий элемент и продвигает степер.
Исходный код
def spliterator[B >: A]: Spliterator[_]
Возвращает java.util.Spliterator, соответствующий этому степеру.
Обратите внимание, что возвращаемый тип — Spliterator[_] вместо Spliterator[A], чтобы разрешить возврат java.util.Spliterator.OfInt (который является Spliterator[Integer]) в подклассе IntStepper (который является Stepper[Int]).
Исходный код
Разделить этот степер, если применимо. Элементы текущего степера распределяются между полученным степером и текущим степером.
Может вернуть null, в этом случае текущий степер возвращает те же элементы, что и раньше.
См. метод trySplit в java.util.Spliterator.
Конкретные методы
Исходный код
Возвращает Iterator, соответствующий этому степеру. Обратите внимание, что итераторы, соответствующие примитивным степерам, упаковывают элементы.
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/Stepper.html