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
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    An Iterator specialized for double values.
    static interface 
    An Iterator specialized for int values.
    static interface 
    An Iterator specialized for long values.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Performs the given action for each remaining element until all elements have been processed or the action throws an exception.

    Methods declared in interface java.util.Iterator

    forEachRemaining, hasNext, next, remove
  • Method Details

    • forEachRemaining

      void forEachRemaining(T_CONS action)
      Performs the given action for each remaining element until all elements have been processed or the action throws an exception. Actions are performed in the order of iteration, if that order is specified. Exceptions thrown by the action are relayed to the caller.

      The behavior of an iterator is unspecified if the action modifies the source of elements in any way (even by calling the remove method or other mutator methods of Iterator subtypes), unless an overriding class has specified a concurrent modification policy.

      Subsequent behavior of an iterator is unspecified if the action throws an exception.

      Parameters:
      action - The action to be performed for each element
      Throws:
      NullPointerException - if the specified action is null