Stepper

scala.collection.Stepper
See theStepper companion object
trait Stepper[+A]

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
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AnyStepper[A]
trait IntStepper
trait LongStepper

Members list

Value members

Abstract methods

Returns a set of characteristics of this Stepper and its elements. See method characteristics in java.util.Spliterator.

Returns a set of characteristics of this Stepper and its elements. See method characteristics in java.util.Spliterator.

Attributes

Returns an estimate of the number of elements of this Stepper, or Long.MaxValue. See method estimateSize in java.util.Spliterator.

Returns an estimate of the number of elements of this Stepper, or Long.MaxValue. See method estimateSize in java.util.Spliterator.

Attributes

Check if there's an element available.

Check if there's an element available.

Attributes

def javaIterator[B >: A]: Iterator[_]^{this}

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]).

Attributes

def nextStep(): A

Return the next element and advance the stepper

Return the next element and advance the stepper

Attributes

def spliterator[B >: A]: Spliterator[_]^{this}

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]).

Attributes

def trySplit(): Stepper[A]^{this} | Null

Split this stepper, if applicable. The elements of the current Stepper are split up between the resulting Stepper and the current stepper.

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.

Attributes

Concrete methods

def iterator: Iterator[A]^{this}

Returns an Iterator corresponding to this Stepper. Note that Iterators corresponding to primitive Steppers box the elements.

Returns an Iterator corresponding to this Stepper. Note that Iterators corresponding to primitive Steppers box the elements.

Attributes