public final class Spliterators extends Object
Spliterator and its primitive specializations
 Spliterator.OfInt, Spliterator.OfLong, and
 Spliterator.OfDouble.Spliterator| Modifier and Type | Class and Description | 
|---|---|
| static class  | Spliterators.AbstractDoubleSpliteratorAn abstract  Spliterator.OfDoublethat implementstrySplitto permit limited parallelism. | 
| static class  | Spliterators.AbstractIntSpliteratorAn abstract  Spliterator.OfIntthat implementstrySplitto
 permit limited parallelism. | 
| static class  | Spliterators.AbstractLongSpliteratorAn abstract  Spliterator.OfLongthat implementstrySplitto permit limited parallelism. | 
| static class  | Spliterators.AbstractSpliterator<T>An abstract  Spliteratorthat implementstrySplitto
 permit limited parallelism. | 
| Modifier and Type | Method and Description | 
|---|---|
| static Spliterator.OfDouble | emptyDoubleSpliterator()Creates an empty  Spliterator.OfDouble | 
| static Spliterator.OfInt | emptyIntSpliterator()Creates an empty  Spliterator.OfInt | 
| static Spliterator.OfLong | emptyLongSpliterator()Creates an empty  Spliterator.OfLong | 
| static <T> Spliterator<T> | emptySpliterator()Creates an empty  Spliterator | 
| static PrimitiveIterator.OfDouble | iterator(Spliterator.OfDouble spliterator)Creates an  PrimitiveIterator.OfDoublefrom aSpliterator.OfDouble. | 
| static PrimitiveIterator.OfInt | iterator(Spliterator.OfInt spliterator)Creates an  PrimitiveIterator.OfIntfrom aSpliterator.OfInt. | 
| static PrimitiveIterator.OfLong | iterator(Spliterator.OfLong spliterator)Creates an  PrimitiveIterator.OfLongfrom aSpliterator.OfLong. | 
| static <T> Iterator<T> | iterator(Spliterator<? extends T> spliterator)Creates an  Iteratorfrom aSpliterator. | 
| static <T> Spliterator<T> | spliterator(Collection<? extends T> c,
           int characteristics)Creates a  Spliteratorusing the given collection'sCollection.iterator()as the source of elements, and
 reporting itsCollection.size()as its initial size. | 
| static Spliterator.OfDouble | spliterator(double[] array,
           int additionalCharacteristics)Creates a  Spliterator.OfDoublecovering the elements of a given array,
 using a customized set of spliterator characteristics. | 
| static Spliterator.OfDouble | spliterator(double[] array,
           int fromIndex,
           int toIndex,
           int additionalCharacteristics)Creates a  Spliterator.OfDoublecovering a range of elements of a
 given array, using a customized set of spliterator characteristics. | 
| static Spliterator.OfInt | spliterator(int[] array,
           int additionalCharacteristics)Creates a  Spliterator.OfIntcovering the elements of a given array,
 using a customized set of spliterator characteristics. | 
| static Spliterator.OfInt | spliterator(int[] array,
           int fromIndex,
           int toIndex,
           int additionalCharacteristics)Creates a  Spliterator.OfIntcovering a range of elements of a
 given array, using a customized set of spliterator characteristics. | 
| static <T> Spliterator<T> | spliterator(Iterator<? extends T> iterator,
           long size,
           int characteristics)Creates a  Spliteratorusing a givenIteratoras the source of elements, and with a given initially reported size. | 
| static Spliterator.OfLong | spliterator(long[] array,
           int additionalCharacteristics)Creates a  Spliterator.OfLongcovering the elements of a given array,
 using a customized set of spliterator characteristics. | 
| static Spliterator.OfLong | spliterator(long[] array,
           int fromIndex,
           int toIndex,
           int additionalCharacteristics)Creates a  Spliterator.OfLongcovering a range of elements of a
 given array, using a customized set of spliterator characteristics. | 
| static <T> Spliterator<T> | spliterator(Object[] array,
           int additionalCharacteristics)Creates a  Spliteratorcovering the elements of a given array,
 using a customized set of spliterator characteristics. | 
| static <T> Spliterator<T> | spliterator(Object[] array,
           int fromIndex,
           int toIndex,
           int additionalCharacteristics)Creates a  Spliteratorcovering a range of elements of a given
 array, using a customized set of spliterator characteristics. | 
| static Spliterator.OfDouble | spliterator(PrimitiveIterator.OfDouble iterator,
           long size,
           int characteristics)Creates a  Spliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, and with a
 given initially reported size. | 
| static Spliterator.OfInt | spliterator(PrimitiveIterator.OfInt iterator,
           long size,
           int characteristics)Creates a  Spliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, and with a given
 initially reported size. | 
| static Spliterator.OfLong | spliterator(PrimitiveIterator.OfLong iterator,
           long size,
           int characteristics)Creates a  Spliterator.OfLongusing a givenLongStream.LongIteratoras the source of elements, and with a
 given initially reported size. | 
| static <T> Spliterator<T> | spliteratorUnknownSize(Iterator<? extends T> iterator,
                      int characteristics)Creates a  Spliteratorusing a givenIteratoras the source of elements, with no initial size estimate. | 
| static Spliterator.OfDouble | spliteratorUnknownSize(PrimitiveIterator.OfDouble iterator,
                      int characteristics)Creates a  Spliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, with no
 initial size estimate. | 
| static Spliterator.OfInt | spliteratorUnknownSize(PrimitiveIterator.OfInt iterator,
                      int characteristics)Creates a  Spliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, with no initial
 size estimate. | 
| static Spliterator.OfLong | spliteratorUnknownSize(PrimitiveIterator.OfLong iterator,
                      int characteristics)Creates a  Spliterator.OfLongusing a givenLongStream.LongIteratoras the source of elements, with no
 initial size estimate. | 
public static <T> Spliterator<T> emptySpliterator()
Spliterator
 The empty spliterator reports Spliterator.SIZED and
 Spliterator.SUBSIZED.  Calls to
 Spliterator.trySplit() always return null.
T - Type of elementspublic static Spliterator.OfInt emptyIntSpliterator()
Spliterator.OfInt
 The empty spliterator reports Spliterator.SIZED and
 Spliterator.SUBSIZED.  Calls to
 Spliterator.trySplit() always return null.
public static Spliterator.OfLong emptyLongSpliterator()
Spliterator.OfLong
 The empty spliterator reports Spliterator.SIZED and
 Spliterator.SUBSIZED.  Calls to
 Spliterator.trySplit() always return null.
public static Spliterator.OfDouble emptyDoubleSpliterator()
Spliterator.OfDouble
 The empty spliterator reports Spliterator.SIZED and
 Spliterator.SUBSIZED.  Calls to
 Spliterator.trySplit() always return null.
public static <T> Spliterator<T> spliterator(Object[] array, int additionalCharacteristics)
Spliterator covering the elements of a given array,
 using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(Object[]).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
T - Type of elementsarray - The array, assumed to be unmodified during useadditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrays.spliterator(Object[])public static <T> Spliterator<T> spliterator(Object[] array, int fromIndex, int toIndex, int additionalCharacteristics)
Spliterator covering a range of elements of a given
 array, using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(Object[]).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
T - Type of elementsarray - The array, assumed to be unmodified during usefromIndex - The least index (inclusive) to covertoIndex - One past the greatest index to coveradditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrayIndexOutOfBoundsException - if fromIndex is negative,
         toIndex is less than fromIndex, or
         toIndex is greater than the array sizeArrays.spliterator(Object[], int, int)public static Spliterator.OfInt spliterator(int[] array, int additionalCharacteristics)
Spliterator.OfInt covering the elements of a given array,
 using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(int[]).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
array - The array, assumed to be unmodified during useadditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrays.spliterator(int[])public static Spliterator.OfInt spliterator(int[] array, int fromIndex, int toIndex, int additionalCharacteristics)
Spliterator.OfInt covering a range of elements of a
 given array, using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(int[], int, int).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
array - The array, assumed to be unmodified during usefromIndex - The least index (inclusive) to covertoIndex - One past the greatest index to coveradditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrayIndexOutOfBoundsException - if fromIndex is negative,
         toIndex is less than fromIndex, or
         toIndex is greater than the array sizeArrays.spliterator(int[], int, int)public static Spliterator.OfLong spliterator(long[] array, int additionalCharacteristics)
Spliterator.OfLong covering the elements of a given array,
 using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(long[]).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
array - The array, assumed to be unmodified during useadditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrays.spliterator(long[])public static Spliterator.OfLong spliterator(long[] array, int fromIndex, int toIndex, int additionalCharacteristics)
Spliterator.OfLong covering a range of elements of a
 given array, using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(long[], int, int).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report.  (For example, if it is
 known the array will not be further modified, specify IMMUTABLE;
 if the array data is considered to have an an encounter order, specify
 ORDERED).  The method Arrays.spliterator(long[], int, int) can
 often be used instead, which returns a spliterator that reports
 SIZED, SUBSIZED, IMMUTABLE, and ORDERED.
array - The array, assumed to be unmodified during usefromIndex - The least index (inclusive) to covertoIndex - One past the greatest index to coveradditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrayIndexOutOfBoundsException - if fromIndex is negative,
         toIndex is less than fromIndex, or
         toIndex is greater than the array sizeArrays.spliterator(long[], int, int)public static Spliterator.OfDouble spliterator(double[] array, int additionalCharacteristics)
Spliterator.OfDouble covering the elements of a given array,
 using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(double[]).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report; it is common to
 additionally specify IMMUTABLE and ORDERED.
array - The array, assumed to be unmodified during useadditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrays.spliterator(double[])public static Spliterator.OfDouble spliterator(double[] array, int fromIndex, int toIndex, int additionalCharacteristics)
Spliterator.OfDouble covering a range of elements of a
 given array, using a customized set of spliterator characteristics.
 This method is provided as an implementation convenience for
 Spliterators which store portions of their elements in arrays, and need
 fine control over Spliterator characteristics.  Most other situations in
 which a Spliterator for an array is needed should use
 Arrays.spliterator(double[], int, int).
 
The returned spliterator always reports the characteristics
 SIZED and SUBSIZED.  The caller may provide additional
 characteristics for the spliterator to report.  (For example, if it is
 known the array will not be further modified, specify IMMUTABLE;
 if the array data is considered to have an an encounter order, specify
 ORDERED).  The method Arrays.spliterator(long[], int, int) can
 often be used instead, which returns a spliterator that reports
 SIZED, SUBSIZED, IMMUTABLE, and ORDERED.
array - The array, assumed to be unmodified during usefromIndex - The least index (inclusive) to covertoIndex - One past the greatest index to coveradditionalCharacteristics - Additional spliterator characteristics
        of this spliterator's source or elements beyond SIZED and
        SUBSIZED which are are always reportedNullPointerException - if the given array is nullArrayIndexOutOfBoundsException - if fromIndex is negative,
         toIndex is less than fromIndex, or
         toIndex is greater than the array sizeArrays.spliterator(double[], int, int)public static <T> Spliterator<T> spliterator(Collection<? extends T> c, int characteristics)
Spliterator using the given collection's
 Collection.iterator() as the source of elements, and
 reporting its Collection.size() as its initial size.
 The spliterator is
 late-binding, inherits
 the fail-fast properties of the collection's iterator, and
 implements trySplit to permit limited parallelism.
T - Type of elementsc - The collectioncharacteristics - Characteristics of this spliterator's source or
        elements.  The characteristics SIZED and SUBSIZED
        are additionally reported unless CONCURRENT is supplied.NullPointerException - if the given collection is nullpublic static <T> Spliterator<T> spliterator(Iterator<? extends T> iterator, long size, int characteristics)
Spliterator using a given Iterator
 as the source of elements, and with a given initially reported size.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned, or the initially reported size is not equal to the actual number of elements in the source.
T - Type of elementsiterator - The iterator for the sourcesize - The number of elements in the source, to be reported as
        initial estimateSizecharacteristics - Characteristics of this spliterator's source or
        elements.  The characteristics SIZED and SUBSIZED
        are additionally reported unless CONCURRENT is supplied.NullPointerException - if the given iterator is nullpublic static <T> Spliterator<T> spliteratorUnknownSize(Iterator<? extends T> iterator, int characteristics)
Spliterator using a given Iterator
 as the source of elements, with no initial size estimate.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned.
T - Type of elementsiterator - The iterator for the sourcecharacteristics - Characteristics of this spliterator's source
        or elements (SIZED and SUBSIZED, if supplied, are
        ignored and are not reported.)NullPointerException - if the given iterator is nullpublic static Spliterator.OfInt spliterator(PrimitiveIterator.OfInt iterator, long size, int characteristics)
Spliterator.OfInt using a given
 IntStream.IntIterator as the source of elements, and with a given
 initially reported size.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned, or the initially reported size is not equal to the actual number of elements in the source.
iterator - The iterator for the sourcesize - The number of elements in the source, to be reported as
        initial estimateSize.characteristics - Characteristics of this spliterator's source or
        elements.  The characteristics SIZED and SUBSIZED
        are additionally reported unless CONCURRENT is supplied.NullPointerException - if the given iterator is nullpublic static Spliterator.OfInt spliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics)
Spliterator.OfInt using a given
 IntStream.IntIterator as the source of elements, with no initial
 size estimate.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned.
iterator - The iterator for the sourcecharacteristics - Characteristics of this spliterator's source
        or elements (SIZED and SUBSIZED, if supplied, are
        ignored and are not reported.)NullPointerException - if the given iterator is nullpublic static Spliterator.OfLong spliterator(PrimitiveIterator.OfLong iterator, long size, int characteristics)
Spliterator.OfLong using a given
 LongStream.LongIterator as the source of elements, and with a
 given initially reported size.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned, or the initially reported size is not equal to the actual number of elements in the source.
iterator - The iterator for the sourcesize - The number of elements in the source, to be reported as
        initial estimateSize.characteristics - Characteristics of this spliterator's source or
        elements.  The characteristics SIZED and SUBSIZED
        are additionally reported unless CONCURRENT is supplied.NullPointerException - if the given iterator is nullpublic static Spliterator.OfLong spliteratorUnknownSize(PrimitiveIterator.OfLong iterator, int characteristics)
Spliterator.OfLong using a given
 LongStream.LongIterator as the source of elements, with no
 initial size estimate.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned.
iterator - The iterator for the sourcecharacteristics - Characteristics of this spliterator's source
        or elements (SIZED and SUBSIZED, if supplied, are
        ignored and are not reported.)NullPointerException - if the given iterator is nullpublic static Spliterator.OfDouble spliterator(PrimitiveIterator.OfDouble iterator, long size, int characteristics)
Spliterator.OfDouble using a given
 DoubleStream.DoubleIterator as the source of elements, and with a
 given initially reported size.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned, or the initially reported size is not equal to the actual number of elements in the source.
iterator - The iterator for the sourcesize - The number of elements in the source, to be reported as
        initial estimateSizecharacteristics - Characteristics of this spliterator's source or
        elements.  The characteristics SIZED and SUBSIZED
        are additionally reported unless CONCURRENT is supplied.NullPointerException - if the given iterator is nullpublic static Spliterator.OfDouble spliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics)
Spliterator.OfDouble using a given
 DoubleStream.DoubleIterator as the source of elements, with no
 initial size estimate.
 The spliterator is not
 late-binding, inherits
 the fail-fast properties of the iterator, and implements
 trySplit to permit limited parallelism.
 
Traversal of elements should be accomplished through the spliterator. The behaviour of splitting and traversal is undefined if the iterator is operated on after the spliterator is returned.
iterator - The iterator for the sourcecharacteristics - Characteristics of this spliterator's source
        or elements (SIZED and SUBSIZED, if supplied, are
        ignored and are not reported.)NullPointerException - if the given iterator is nullpublic static <T> Iterator<T> iterator(Spliterator<? extends T> spliterator)
Iterator from a Spliterator.
 Traversal of elements should be accomplished through the iterator. The behaviour of traversal is undefined if the spliterator is operated after the iterator is returned.
T - Type of elementsspliterator - The spliteratorNullPointerException - if the given spliterator is nullpublic static PrimitiveIterator.OfInt iterator(Spliterator.OfInt spliterator)
PrimitiveIterator.OfInt from a
 Spliterator.OfInt.
 Traversal of elements should be accomplished through the iterator. The behaviour of traversal is undefined if the spliterator is operated after the iterator is returned.
spliterator - The spliteratorNullPointerException - if the given spliterator is nullpublic static PrimitiveIterator.OfLong iterator(Spliterator.OfLong spliterator)
PrimitiveIterator.OfLong from a
 Spliterator.OfLong.
 Traversal of elements should be accomplished through the iterator. The behaviour of traversal is undefined if the spliterator is operated after the iterator is returned.
spliterator - The spliteratorNullPointerException - if the given spliterator is nullpublic static PrimitiveIterator.OfDouble iterator(Spliterator.OfDouble spliterator)
PrimitiveIterator.OfDouble from a
 Spliterator.OfDouble.
 Traversal of elements should be accomplished through the iterator. The behaviour of traversal is undefined if the spliterator is operated after the iterator is returned.
spliterator - The spliteratorNullPointerException - if the given spliterator 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, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.