Spliterator.OfPrimitive (Java Platform SE 8 )
Keywords: java.util.Spliterator.OfPrimitive interface
Date: 2026-04-22

compact1, compact2, compact3
java.util

## Interface Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>

- Type Parameters:
    `T` - the type of elements returned by this Spliterator. 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`.
    `T_SPLITR` - the type of primitive Spliterator. The type must be a primitive specialization of Spliterator for `T`, such as `Spliterator.OfInt` for `Integer`.
  All Superinterfaces:
    Spliterator<T>
  All Known Subinterfaces:
    Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong
  All Known Implementing Classes:
    Spliterators.AbstractDoubleSpliterator, Spliterators.AbstractIntSpliterator, Spliterators.AbstractLongSpliterator
  Enclosing interface:
    Spliterator<T>

      public static interface Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
      extends Spliterator<T>

  A Spliterator specialized for primitive values.
  Since:
    1.8
  See Also:
    `Spliterator.OfInt`, `Spliterator.OfLong`, `Spliterator.OfDouble`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface java.util.Spliterator

      `Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>`

  - ### Field Summary

    - ### Fields inherited from interface java.util.Spliterator

      `CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default void` | `forEachRemaining(T_CONS action)` Performs the given action for each remaining element, sequentially in the current thread, until all elements have been processed or the action throws an exception.
    `boolean` | `tryAdvance(T_CONS action)` If a remaining element exists, performs the given action on it, returning `true`; else returns `false`.
    `T_SPLITR` | `trySplit()` If this spliterator can be partitioned, returns a Spliterator covering elements, that will, upon return from this method, not be covered by this Spliterator.

    - ### Methods inherited from interface java.util.Spliterator

      `characteristics, estimateSize, forEachRemaining, getComparator, getExactSizeIfKnown, hasCharacteristics, tryAdvance`

- - ### Method Detail

    - #### trySplit

          T_SPLITR trySplit()

      Description copied from interface: `Spliterator`
      If this spliterator can be partitioned, returns a Spliterator covering elements, that will, upon return from this method, not be covered by this Spliterator.

      If this Spliterator is `Spliterator.ORDERED`, the returned Spliterator must cover a strict prefix of the elements.

      Unless this Spliterator covers an infinite number of elements, repeated calls to `trySplit()` must eventually return `null`. Upon non-null return:

      - the value reported for `estimateSize()` before splitting, must, after splitting, be greater than or equal to `estimateSize()` for this and the returned Spliterator; and
      - if this Spliterator is `SUBSIZED`, then `estimateSize()` for this spliterator before splitting must be equal to the sum of `estimateSize()` for this and the returned Spliterator after splitting.

      This method may return `null` for any reason, including emptiness, inability to split after traversal has commenced, data structure constraints, and efficiency considerations.

      Specified by:
        `trySplit` in interface `Spliterator<T>`
      Returns:
        a `Spliterator` covering some portion of the elements, or `null` if this spliterator cannot be split

    - #### tryAdvance

          boolean tryAdvance(T_CONS action)

      If a remaining element exists, performs the given action on it, returning `true`; else returns `false`. If this Spliterator is `Spliterator.ORDERED` the action is performed on the next element in encounter order. Exceptions thrown by the action are relayed to the caller.
      Parameters:
        `action` - The action
      Returns:
        `false` if no remaining elements existed upon entry to this method, else `true`.
      Throws:
        `NullPointerException` - if the specified action is null

    - #### forEachRemaining

          default void forEachRemaining(T_CONS action)

      Performs the given action for each remaining element, sequentially in the current thread, until all elements have been processed or the action throws an exception. If this Spliterator is `Spliterator.ORDERED`, actions are performed in encounter order. Exceptions thrown by the action are relayed to the caller.
      Implementation Requirements:
        The default implementation repeatedly invokes `tryAdvance(T_CONS)` until it returns `false`. It should be overridden whenever possible.
      Parameters:
        `action` - The action
      Throws:
        `NullPointerException` - if the specified action is null

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.