## Uses of Interface
java.util.Spliterator

Packages that use Spliterator
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
`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
`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
`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
`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>` HashSet.`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>` 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.
`Spliterator<E>` TreeSet.`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.
`Spliterator<E>` PriorityQueue.`spliterator()` Creates a late-binding and fail-fast `Spliterator` over the elements in this queue.
`default Spliterator<E>` List.`spliterator()` Creates a `Spliterator` over the elements in this list.
`Spliterator<E>` ArrayList.`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.
`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
`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
`Spliterator<E>` CopyOnWriteArraySet.`spliterator()` Returns a `Spliterator` over the elements in this set in the order in which these elements were added.
`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>` ConcurrentLinkedDeque.`spliterator()` Returns a `Spliterator` over the elements in this deque.
`Spliterator<E>` CopyOnWriteArrayList.`spliterator()` Returns a `Spliterator` over the elements in this list.
`Spliterator<E>` ConcurrentLinkedQueue.`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>` ConcurrentSkipListSet.`spliterator()` Returns a `Spliterator` over the elements in this set.
`Spliterator<K>` ConcurrentHashMap.KeySetView.`spliterator()`
`Spliterator<E>` LinkedBlockingDeque.`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`.

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

Methods in java.util.stream that return Spliterator
`Spliterator<T>` BaseStream.`spliterator()` Returns a spliterator for the elements of this stream.

Methods in java.util.stream with parameters of type Spliterator
`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
`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`.