Module java.base
Package java.util

Interface PrimitiveIterator<T,T_CONS>

Type Parameters:
T - the type of elements returned by this PrimitiveIterator. The type must be a wrapper type for a primitive type, such as Integer for the primitive int type.
T_CONS - the type of primitive consumer. The type must be a primitive specialization of Consumer for T, such as IntConsumer for Integer.
All Superinterfaces:
Iterator<T>
All Known Subinterfaces:
PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong

public interface PrimitiveIterator<T,T_CONS> extends Iterator<T>
A base type for primitive specializations of Iterator. Specialized subtypes are provided for int, long, and double values.

The specialized subtype default implementations of Iterator.next() and Iterator.forEachRemaining(java.util.function.Consumer) box primitive values to instances of their corresponding wrapper class. Such boxing may offset any advantages gained when using the primitive specializations. To avoid boxing, the corresponding primitive-based methods should be used. For example, PrimitiveIterator.OfInt.nextInt() and PrimitiveIterator.OfInt.forEachRemaining(java.util.function.IntConsumer) should be used in preference to PrimitiveIterator.OfInt.next() and PrimitiveIterator.OfInt.forEachRemaining(java.util.function.Consumer).

Iteration of primitive values using boxing-based methods next() and forEachRemaining(), does not affect the order in which the values, transformed to boxed values, are encountered.

Implementation Note:
If the boolean system property org.openjdk.java.util.stream.tripwire is set to true then diagnostic warnings are reported if boxing of primitive values occur when operating on primitive subtype specializations.
Since:
1.8