Class Spliterators
Spliterator and its primitive specializations
Spliterator.OfInt, Spliterator.OfLong, and
Spliterator.OfDouble.- Since:
- 1.8
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn abstractSpliterator.OfDoublethat implementstrySplitto permit limited parallelism.static classAn abstractSpliterator.OfIntthat implementstrySplitto permit limited parallelism.static classAn abstractSpliterator.OfLongthat implementstrySplitto permit limited parallelism.static classAn abstractSpliteratorthat implementstrySplitto permit limited parallelism. -
Method Summary
Modifier and TypeMethodDescriptionstatic Spliterator.OfDoubleCreates an emptySpliterator.OfDoublestatic Spliterator.OfIntCreates an emptySpliterator.OfIntstatic Spliterator.OfLongCreates an emptySpliterator.OfLongstatic <T> Spliterator<T> Creates an emptySpliteratorstatic PrimitiveIterator.OfDoubleiterator(Spliterator.OfDouble spliterator) Creates anPrimitiveIterator.OfDoublefrom aSpliterator.OfDouble.static PrimitiveIterator.OfIntiterator(Spliterator.OfInt spliterator) Creates anPrimitiveIterator.OfIntfrom aSpliterator.OfInt.static PrimitiveIterator.OfLongiterator(Spliterator.OfLong spliterator) Creates anPrimitiveIterator.OfLongfrom aSpliterator.OfLong.static <T> Iterator<T> iterator(Spliterator<? extends T> spliterator) Creates anIteratorfrom aSpliterator.static Spliterator.OfDoublespliterator(double[] array, int additionalCharacteristics) Creates aSpliterator.OfDoublecovering the elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfDoublespliterator(double[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.OfDoublecovering a range of elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfIntspliterator(int[] array, int additionalCharacteristics) Creates aSpliterator.OfIntcovering the elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfIntspliterator(int[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.OfIntcovering a range of elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfLongspliterator(long[] array, int additionalCharacteristics) Creates aSpliterator.OfLongcovering the elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfLongspliterator(long[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.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 aSpliteratorcovering 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 aSpliteratorcovering a range of elements of a given array, using a customized set of spliterator characteristics.static <T> Spliterator<T> spliterator(Collection<? extends T> c, int characteristics) static <T> Spliterator<T> spliterator(Iterator<? extends T> iterator, long size, int characteristics) Creates aSpliteratorusing a givenIteratoras the source of elements, and with a given initially reported size.static Spliterator.OfDoublespliterator(PrimitiveIterator.OfDouble iterator, long size, int characteristics) Creates aSpliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, and with a given initially reported size.static Spliterator.OfIntspliterator(PrimitiveIterator.OfInt iterator, long size, int characteristics) Creates aSpliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, and with a given initially reported size.static Spliterator.OfLongspliterator(PrimitiveIterator.OfLong iterator, long size, int characteristics) Creates aSpliterator.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 aSpliteratorusing a givenIteratoras the source of elements, with no initial size estimate.static Spliterator.OfDoublespliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics) Creates aSpliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, with no initial size estimate.static Spliterator.OfIntspliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics) Creates aSpliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, with no initial size estimate.static Spliterator.OfLongspliteratorUnknownSize(PrimitiveIterator.OfLong iterator, int characteristics) Creates aSpliterator.OfLongusing a givenLongStream.LongIteratoras the source of elements, with no initial size estimate.
-
Method Details
-
emptySpliterator
Creates an emptySpliteratorThe empty spliterator reports
Spliterator.SIZEDandSpliterator.SUBSIZED. Calls toSpliterator.trySplit()always returnnull.- Type Parameters:
T- Type of elements- Returns:
- An empty spliterator
-
emptyIntSpliterator
Creates an emptySpliterator.OfIntThe empty spliterator reports
Spliterator.SIZEDandSpliterator.SUBSIZED. Calls toSpliterator.trySplit()always returnnull.- Returns:
- An empty spliterator
-
emptyLongSpliterator
Creates an emptySpliterator.OfLongThe empty spliterator reports
Spliterator.SIZEDandSpliterator.SUBSIZED. Calls toSpliterator.trySplit()always returnnull.- Returns:
- An empty spliterator
-
emptyDoubleSpliterator
Creates an emptySpliterator.OfDoubleThe empty spliterator reports
Spliterator.SIZEDandSpliterator.SUBSIZED. Calls toSpliterator.trySplit()always returnnull.- Returns:
- An empty spliterator
-
spliterator
Creates aSpliteratorcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Type Parameters:
T- Type of elements- Parameters:
array- The array, assumed to be unmodified during useadditionalCharacteristics- Additional spliterator characteristics of this spliterator's source or elements beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnull- See Also:
-
spliterator
public static <T> Spliterator<T> spliterator(Object[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliteratorcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Type Parameters:
T- Type of elements- Parameters:
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 beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnullArrayIndexOutOfBoundsException- iffromIndexis negative,toIndexis less thanfromIndex, ortoIndexis greater than the array size- See Also:
-
spliterator
Creates aSpliterator.OfIntcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Parameters:
array- The array, assumed to be unmodified during useadditionalCharacteristics- Additional spliterator characteristics of this spliterator's source or elements beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnull- See Also:
-
spliterator
public static Spliterator.OfInt spliterator(int[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.OfIntcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Parameters:
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 beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnullArrayIndexOutOfBoundsException- iffromIndexis negative,toIndexis less thanfromIndex, ortoIndexis greater than the array size- See Also:
-
spliterator
Creates aSpliterator.OfLongcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Parameters:
array- The array, assumed to be unmodified during useadditionalCharacteristics- Additional spliterator characteristics of this spliterator's source or elements beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnull- See Also:
-
spliterator
public static Spliterator.OfLong spliterator(long[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.OfLongcovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report. (For example, if it is known the array will not be further modified, specifyIMMUTABLE; if the array data is considered to have an encounter order, specifyORDERED). The methodArrays.spliterator(long[], int, int)can often be used instead, which returns a spliterator that reportsSIZED,SUBSIZED,IMMUTABLE, andORDERED.- Parameters:
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 beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnullArrayIndexOutOfBoundsException- iffromIndexis negative,toIndexis less thanfromIndex, ortoIndexis greater than the array size- See Also:
-
spliterator
Creates aSpliterator.OfDoublecovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLEandORDERED.- Parameters:
array- The array, assumed to be unmodified during useadditionalCharacteristics- Additional spliterator characteristics of this spliterator's source or elements beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnull- See Also:
-
spliterator
public static Spliterator.OfDouble spliterator(double[] array, int fromIndex, int toIndex, int additionalCharacteristics) Creates aSpliterator.OfDoublecovering 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
SIZEDandSUBSIZED. The caller may provide additional characteristics for the spliterator to report. (For example, if it is known the array will not be further modified, specifyIMMUTABLE; if the array data is considered to have an encounter order, specifyORDERED). The methodArrays.spliterator(long[], int, int)can often be used instead, which returns a spliterator that reportsSIZED,SUBSIZED,IMMUTABLE, andORDERED.- Parameters:
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 beyondSIZEDandSUBSIZEDwhich are always reported- Returns:
- A spliterator for an array
- Throws:
NullPointerException- if the given array isnullArrayIndexOutOfBoundsException- iffromIndexis negative,toIndexis less thanfromIndex, ortoIndexis greater than the array size- See Also:
-
spliterator
Creates aSpliteratorusing the given collection'siteratoras the source of elements, and reporting itssizeas its initial size.The spliterator is late-binding, inherits the fail-fast properties of the collection's iterator, and implements
trySplitto permit limited parallelism.- Type Parameters:
T- Type of elements- Parameters:
c- The collectioncharacteristics- Characteristics of this spliterator's source or elements. The characteristicsSIZEDandSUBSIZEDare additionally reported unlessCONCURRENTis supplied.- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given collection isnull
-
spliterator
public static <T> Spliterator<T> spliterator(Iterator<? extends T> iterator, long size, int characteristics) Creates aSpliteratorusing a givenIteratoras 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
trySplitto 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.
- Type Parameters:
T- Type of elements- Parameters:
iterator- The iterator for the sourcesize- The number of elements in the source, to be reported as initialestimateSizecharacteristics- Characteristics of this spliterator's source or elements. The characteristicsSIZEDandSUBSIZEDare additionally reported unlessCONCURRENTis supplied.- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliteratorUnknownSize
public static <T> Spliterator<T> spliteratorUnknownSize(Iterator<? extends T> iterator, int characteristics) Creates aSpliteratorusing a givenIteratoras 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
trySplitto 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.
- Type Parameters:
T- Type of elements- Parameters:
iterator- The iterator for the sourcecharacteristics- Characteristics of this spliterator's source or elements (SIZEDandSUBSIZED, if supplied, are ignored and are not reported.)- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliterator
public static Spliterator.OfInt spliterator(PrimitiveIterator.OfInt iterator, long size, int characteristics) Creates aSpliterator.OfIntusing a givenIntStream.IntIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcesize- The number of elements in the source, to be reported as initialestimateSize.characteristics- Characteristics of this spliterator's source or elements. The characteristicsSIZEDandSUBSIZEDare additionally reported unlessCONCURRENTis supplied.- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliteratorUnknownSize
public static Spliterator.OfInt spliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics) Creates aSpliterator.OfIntusing a givenIntStream.IntIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcecharacteristics- Characteristics of this spliterator's source or elements (SIZEDandSUBSIZED, if supplied, are ignored and are not reported.)- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliterator
public static Spliterator.OfLong spliterator(PrimitiveIterator.OfLong iterator, long size, int characteristics) Creates aSpliterator.OfLongusing a givenLongStream.LongIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcesize- The number of elements in the source, to be reported as initialestimateSize.characteristics- Characteristics of this spliterator's source or elements. The characteristicsSIZEDandSUBSIZEDare additionally reported unlessCONCURRENTis supplied.- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliteratorUnknownSize
public static Spliterator.OfLong spliteratorUnknownSize(PrimitiveIterator.OfLong iterator, int characteristics) Creates aSpliterator.OfLongusing a givenLongStream.LongIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcecharacteristics- Characteristics of this spliterator's source or elements (SIZEDandSUBSIZED, if supplied, are ignored and are not reported.)- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliterator
public static Spliterator.OfDouble spliterator(PrimitiveIterator.OfDouble iterator, long size, int characteristics) Creates aSpliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcesize- The number of elements in the source, to be reported as initialestimateSizecharacteristics- Characteristics of this spliterator's source or elements. The characteristicsSIZEDandSUBSIZEDare additionally reported unlessCONCURRENTis supplied.- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
spliteratorUnknownSize
public static Spliterator.OfDouble spliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics) Creates aSpliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras 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
trySplitto 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.
- Parameters:
iterator- The iterator for the sourcecharacteristics- Characteristics of this spliterator's source or elements (SIZEDandSUBSIZED, if supplied, are ignored and are not reported.)- Returns:
- A spliterator from an iterator
- Throws:
NullPointerException- if the given iterator isnull
-
iterator
Creates anIteratorfrom aSpliterator.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.
- Type Parameters:
T- Type of elements- Parameters:
spliterator- The spliterator- Returns:
- An iterator
- Throws:
NullPointerException- if the given spliterator isnull
-
iterator
Creates anPrimitiveIterator.OfIntfrom aSpliterator.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.
- Parameters:
spliterator- The spliterator- Returns:
- An iterator
- Throws:
NullPointerException- if the given spliterator isnull
-
iterator
Creates anPrimitiveIterator.OfLongfrom aSpliterator.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.
- Parameters:
spliterator- The spliterator- Returns:
- An iterator
- Throws:
NullPointerException- if the given spliterator isnull
-
iterator
Creates anPrimitiveIterator.OfDoublefrom aSpliterator.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.
- Parameters:
spliterator- The spliterator- Returns:
- An iterator
- Throws:
NullPointerException- if the given spliterator isnull
-