Uses of Interface java.util.Spliterator (Java SE 10 & JDK 10 )

## 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, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
  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 | 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 | 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 | 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 | Description
    --- | --- | ---
    `static <T> Spliterator<T>` | Spliterators.`emptySpliterator()` | Creates an empty `Spliterator`
    `Spliterator<E>` | ArrayDeque.`spliterator()` | Creates a late-binding and fail-fast `Spliterator` over the elements in this deque.
    `Spliterator<E>` | ArrayList.`spliterator()` | Creates a late-binding and fail-fast `Spliterator` over the elements in this list.
    `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.
    `default Spliterator<E>` | Collection.`spliterator()` | Creates a `Spliterator` over the elements in this collection.
    `Spliterator<E>` | HashSet.`spliterator()` | Creates a late-binding and fail-fast `Spliterator` over the elements in this set.
    `Spliterator<E>` | LinkedHashSet.`spliterator()` | Creates a late-binding and fail-fast `Spliterator` over the elements in this set.
    `Spliterator<E>` | LinkedList.`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>` | PriorityQueue.`spliterator()` | Creates a late-binding and fail-fast `Spliterator` over the elements in this queue.
    `default Spliterator<E>` | Set.`spliterator()` | Creates a `Spliterator` over the elements in this set.
    `default Spliterator<E>` | SortedSet.`spliterator()` | Creates a `Spliterator` over the elements in this sorted set.
    `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>` | 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.
    `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.
    `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>` | 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.
    `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.

    Methods in java.util with parameters of type Spliterator
    Modifier and Type | Method | 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 | Description
    --- | --- | ---
    `Spliterator<E>` | ArrayBlockingQueue.`spliterator()` | Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | ConcurrentLinkedDeque.`spliterator()` | Returns a `Spliterator` over the elements in this deque.
    `Spliterator<E>` | ConcurrentLinkedQueue.`spliterator()` | Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | ConcurrentSkipListSet.`spliterator()` | Returns a `Spliterator` over the elements in this set.
    `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>` | LinkedBlockingQueue.`spliterator()` | Returns a `Spliterator` over the elements in this queue.
    `Spliterator<E>` | LinkedTransferQueue.`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>` | SynchronousQueue.`spliterator()` | Returns an empty spliterator in which calls to `trySplit` always return `null`.

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

    Methods in java.util.stream that return Spliterator
    Modifier and Type | Method | 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 | 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 | 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`.