Uses of Interface java.util.Spliterator (Java Platform SE 8 )
Date: 2026-04-17

## Uses of Interface
java.util.Spliterator

- Packages that use Spliterator
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.util | Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
  java.util.concurrent | Utility classes commonly useful in concurrent programming.
  java.util.stream | Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.

- - ### Uses of Spliterator in java.lang

    Methods in java.lang that return Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `default Spliterator<T>` | Iterable.`spliterator()` Creates a `Spliterator` over the elements described by this `Iterable`.

  - ### Uses of Spliterator in java.util

    Subinterfaces of Spliterator in java.util
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `Spliterator.OfDouble` A Spliterator specialized for `double` values.
    `static interface` | `Spliterator.OfInt` A Spliterator specialized for `int` values.
    `static interface` | `Spliterator.OfLong` A Spliterator specialized for `long` values.
    `static interface` | `Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>` A Spliterator specialized for primitive values.

    Classes in java.util that implement Spliterator
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Spliterators.AbstractDoubleSpliterator` An abstract `Spliterator.OfDouble` that implements `trySplit` to permit limited parallelism.
    `static class` | `Spliterators.AbstractIntSpliterator` An abstract `Spliterator.OfInt` that implements `trySplit` to permit limited parallelism.
    `static class` | `Spliterators.AbstractLongSpliterator` An abstract `Spliterator.OfLong` that implements `trySplit` to permit limited parallelism.
    `static class` | `Spliterators.AbstractSpliterator<T>` An abstract `Spliterator` that implements `trySplit` to permit limited parallelism.

    Methods in java.util that return Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `static <T> Spliterator<T>` | Spliterators.`emptySpliterator()` Creates an empty `Spliterator`
    `Spliterator<E>` | PriorityQueue.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this queue.
    `Spliterator<E>` | ArrayList.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this list.
    `default Spliterator<E>` | List.`spliterator()` Creates a `Spliterator` over the elements in this list.
    `Spliterator<E>` | LinkedList.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this list.
    `default Spliterator<E>` | Set.`spliterator()` Creates a `Spliterator` over the elements in this set.
    `Spliterator<E>` | ArrayDeque.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this deque.
    `Spliterator<E>` | HashSet.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this set.
    `Spliterator<E>` | TreeSet.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this set.
    `Spliterator<E>` | Vector.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this list.
    `default Spliterator<E>` | Collection.`spliterator()` Creates a `Spliterator` over the elements in this collection.
    `default Spliterator<E>` | SortedSet.`spliterator()` Creates a `Spliterator` over the elements in this sorted set.
    `Spliterator<E>` | LinkedHashSet.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this set.
    `static <T> Spliterator<T>` | Spliterators.`spliterator(Collection<? extends T> c, int characteristics)` Creates a `Spliterator` using the given collection's `Collection.iterator()` as the source of elements, and reporting its `Collection.size()` as its initial size.
    `static <T> Spliterator<T>` | Spliterators.`spliterator(Iterator<? extends T> iterator, long size, int characteristics)` Creates a `Spliterator` using a given `Iterator` as the source of elements, and with a given initially reported size.
    `static <T> Spliterator<T>` | Spliterators.`spliterator(Object[] array, int additionalCharacteristics)` Creates a `Spliterator` covering the elements of a given array, using a customized set of spliterator characteristics.
    `static <T> Spliterator<T>` | Spliterators.`spliterator(Object[] array, int fromIndex, int toIndex, int additionalCharacteristics)` Creates a `Spliterator` covering a range of elements of a given array, using a customized set of spliterator characteristics.
    `static <T> Spliterator<T>` | Arrays.`spliterator(T[] array)` Returns a `Spliterator` covering all of the specified array.
    `static <T> Spliterator<T>` | Arrays.`spliterator(T[] array, int startInclusive, int endExclusive)` Returns a `Spliterator` covering the specified range of the specified array.
    `static <T> Spliterator<T>` | Spliterators.`spliteratorUnknownSize(Iterator<? extends T> iterator, int characteristics)` Creates a `Spliterator` using a given `Iterator` as the source of elements, with no initial size estimate.
    `Spliterator<T>` | Spliterators.AbstractSpliterator.`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.
    `Spliterator<T>` | Spliterator.`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 in java.util with parameters of type Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `static <T> Iterator<T>` | Spliterators.`iterator(Spliterator<? extends T> spliterator)` Creates an `Iterator` from a `Spliterator`.

  - ### Uses of Spliterator in java.util.concurrent

    Methods in java.util.concurrent that return Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `Spliterator<E>` | ConcurrentSkipListSet.`spliterator()` Returns a `Spliterator` over the elements in this set.
    `Spliterator<E>` | LinkedTransferQueue.`spliterator()` Returns a `Spliterator` over the elements in this queue.
    `Spliterator<K>` | ConcurrentHashMap.KeySetView.`spliterator()`
    `Spliterator<E>` | ConcurrentLinkedDeque.`spliterator()` Returns a `Spliterator` over the elements in this deque.
    `Spliterator<E>` | SynchronousQueue.`spliterator()` Returns an empty spliterator in which calls to `trySplit()` always return `null`.
    `Spliterator<E>` | CopyOnWriteArrayList.`spliterator()` Returns a `Spliterator` over the elements in this list.
    `Spliterator<E>` | CopyOnWriteArraySet.`spliterator()` Returns a `Spliterator` over the elements in this set in the order in which these elements were added.
    `Spliterator<E>` | LinkedBlockingDeque.`spliterator()` Returns a `Spliterator` over the elements in this deque.
    `Spliterator<E>` | ArrayBlockingQueue.`spliterator()` Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | PriorityBlockingQueue.`spliterator()` Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | LinkedBlockingQueue.`spliterator()` Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | ConcurrentLinkedQueue.`spliterator()` Returns a `Spliterator` over the elements in this queue.

  - ### Uses of Spliterator in java.util.stream

    Methods in java.util.stream that return Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `Spliterator<T>` | BaseStream.`spliterator()` Returns a spliterator for the elements of this stream.

    Methods in java.util.stream with parameters of type Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `static <T> Stream<T>` | StreamSupport.`stream(Spliterator<T> spliterator, boolean parallel)` Creates a new sequential or parallel `Stream` from a `Spliterator`.

    Method parameters in java.util.stream with type arguments of type Spliterator
    Modifier and Type | Method and Description
    --- | ---
    `static <T> Stream<T>` | StreamSupport.`stream(Supplier<? extends Spliterator<T>> supplier, int characteristics, boolean parallel)` Creates a new sequential or parallel `Stream` from a `Supplier` of `Spliterator`.

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.