Spliterator and its primitive specializationsSpliterator.OfInt,Spliterator.OfLong, andSpliterator.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 TypeMethodDescriptionstaticSpliterator.OfDoubleCreates an emptySpliterator.OfDoublestaticSpliterator.OfIntCreates an emptySpliterator.OfIntstaticSpliterator.OfLongCreates an emptySpliterator.OfLongstatic <T> Spliterator<T>Creates an emptySpliteratoriterator(Spliterator.OfDouble spliterator) Creates anPrimitiveIterator.OfDoublefrom aSpliterator.OfDouble.staticPrimitiveIterator.OfIntiterator(Spliterator.OfInt spliterator) Creates anPrimitiveIterator.OfIntfrom aSpliterator.OfInt.staticPrimitiveIterator.OfLongiterator(Spliterator.OfLong spliterator) Creates anPrimitiveIterator.OfLongfrom aSpliterator.OfLong.static <T> Iterator<T>iterator(Spliterator<? extends T> spliterator) Creates anIteratorfrom aSpliterator.staticSpliterator.OfDoublespliterator(double[] array, int additionalCharacteristics) Creates aSpliterator.OfDoublecovering the elements of a given array, using a customized set of spliterator characteristics.staticSpliterator.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.staticSpliterator.OfIntspliterator(int[] array, int additionalCharacteristics) Creates aSpliterator.OfIntcovering the elements of a given array, using a customized set of spliterator characteristics.staticSpliterator.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.staticSpliterator.OfLongspliterator(long[] array, int additionalCharacteristics) Creates aSpliterator.OfLongcovering the elements of a given array, using a customized set of spliterator characteristics.staticSpliterator.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) Creates aSpliteratorusing the given collection'sCollection.iterator()as the source of elements, and reporting itsCollection.size()as its initial size.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.staticSpliterator.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.staticSpliterator.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.staticSpliterator.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.staticSpliterator.OfDoublespliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics) Creates aSpliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, with no initial size estimate.staticSpliterator.OfIntspliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics) Creates aSpliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, with no initial size estimate.staticSpliterator.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'sCollection.iterator()as the source of elements, and reporting itsCollection.size()as its initial size.The spliterator islate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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 notlate-binding, inherits thefail-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