Steppers exist to enable creating Java streams over Scala collections, see scala.jdk.StreamConverters. Besides that use case, they allow iterating over collections holding unboxed primitives (e.g., Array[Int]
) without boxing the elements.
Steppers have an iterator-like interface with methods hasStep
and nextStep()
. The difference to iterators - and the reason Stepper
is not a subtype of Iterator
- is that there are hand-specialized variants of Stepper
for Int
, Long
and Double
(IntStepper, etc.). These enable iterating over collections holding unboxed primitives (e.g., Arrays, scala.jdk.Accumulators) without boxing the elements.
The selection of primitive types (Int
, Long
and Double
) matches the hand-specialized variants of Java Streams (java.util.stream.Stream, java.util.stream.IntStream, etc.) and the corresponding Java Spliterators (java.util.Spliterator, java.util.Spliterator.OfInt, etc.).
Steppers can be converted to Scala Iterators, Java Iterators and Java Spliterators. Primitive Steppers are converted to the corresponding primitive Java Iterators and Spliterators.
Type parameters
- A
-
the element type of the Stepper
Attributes
- Companion
- object
- Source
- Stepper.scala
- Graph
-
- Supertypes
- Known subtypes