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
- Companion:
- object
- Source:
- Stepper.scala
Value members
Abstract methods
Returns a set of characteristics of this Stepper and its elements.
Returns a set of characteristics of this Stepper and its elements. See method
characteristics
in java.util.Spliterator.
- Source:
- Stepper.scala
Returns an estimate of the number of elements of this Stepper, or Long.MaxValue.
Returns an estimate of the number of elements of this Stepper, or Long.MaxValue. See
method estimateSize
in java.util.Spliterator.
- Source:
- Stepper.scala
Returns a Java java.util.Iterator corresponding to this Stepper.
Returns a Java java.util.Iterator corresponding to this Stepper.
Note that the return type is Iterator[_]
instead of Iterator[A]
to allow returning
a java.util.PrimitiveIterator.OfInt (which is a Iterator[Integer]
) in the subclass
IntStepper (which is a Stepper[Int]
).
- Source:
- Stepper.scala
Return the next element and advance the stepper
Return the next element and advance the stepper
- Source:
- Stepper.scala
Returns a java.util.Spliterator corresponding to this Stepper.
Returns a java.util.Spliterator corresponding to this Stepper.
Note that the return type is Spliterator[_]
instead of Spliterator[A]
to allow returning
a java.util.Spliterator.OfInt (which is a Spliterator[Integer]
) in the subclass IntStepper
(which is a Stepper[Int]
).
- Source:
- Stepper.scala
Split this stepper, if applicable.
Split this stepper, if applicable. The elements of the current Stepper are split up between the resulting Stepper and the current stepper.
May return null
, in which case the current Stepper yields the same elements as before.
See method trySplit
in java.util.Spliterator.
- Source:
- Stepper.scala
Concrete methods
Returns an Iterator corresponding to this Stepper.
Returns an Iterator corresponding to this Stepper. Note that Iterators corresponding to primitive Steppers box the elements.
- Source:
- Stepper.scala