Spliterators (Java SE 13 & JDK 13 )
public final class Spliterators extends Object
- Since:
- 1.8
- See Also:
Spliterator
-
Nested Class Summary
-
Method Summary
Modifier and Type Method Description static Spliterator.OfDoubleemptyDoubleSpliterator()Creates an empty
Spliterator.OfDoublestatic Spliterator.OfIntemptyIntSpliterator()Creates an empty
Spliterator.OfIntstatic Spliterator.OfLongemptyLongSpliterator()Creates an empty
Spliterator.OfLongstatic <T> Spliterator<T>emptySpliterator()Creates an empty
Spliteratorstatic PrimitiveIterator.OfDoubleiterator(Spliterator.OfDouble spliterator)Creates an
PrimitiveIterator.OfDoublefrom aSpliterator.OfDouble.static PrimitiveIterator.OfIntiterator(Spliterator.OfInt spliterator)Creates an
PrimitiveIterator.OfIntfrom aSpliterator.OfInt.static PrimitiveIterator.OfLongiterator(Spliterator.OfLong spliterator)Creates an
PrimitiveIterator.OfLongfrom aSpliterator.OfLong.static <T> Iterator<T>iterator(Spliterator<? extends T> spliterator)Creates an
Iteratorfrom aSpliterator.static Spliterator.OfDoublespliterator(double[] array, int additionalCharacteristics)Creates a
Spliterator.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 a
Spliterator.OfDoublecovering a range of elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfIntspliterator(int[] array, int additionalCharacteristics)Creates a
Spliterator.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 a
Spliterator.OfIntcovering a range of elements of a given array, using a customized set of spliterator characteristics.static Spliterator.OfLongspliterator(long[] array, int additionalCharacteristics)Creates a
Spliterator.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 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 <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 <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.OfDoublespliterator(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.OfIntspliterator(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.OfLongspliterator(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.OfDoublespliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics)Creates a
Spliterator.OfDoubleusing a givenDoubleStream.DoubleIteratoras the source of elements, with no initial size estimate.static Spliterator.OfIntspliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics)Creates a
Spliterator.OfIntusing a givenIntStream.IntIteratoras the source of elements, with no initial size estimate.static Spliterator.OfLongspliteratorUnknownSize(PrimitiveIterator.OfLong iterator, int characteristics)Creates a
Spliterator.OfLongusing a givenLongStream.LongIteratoras the source of elements, with no initial size estimate.
-
Method Details
-
emptySpliterator
public static <T> Spliterator<T> emptySpliterator()
- Type Parameters:
T- Type of elements- Returns:
- An empty spliterator
-
emptyIntSpliterator
- Returns:
- An empty spliterator
-
emptyLongSpliterator
- Returns:
- An empty spliterator
-
emptyDoubleSpliterator
- Returns:
- An empty spliterator
-
spliterator
public 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.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:
Arrays.spliterator(Object[])
-
spliterator
public 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.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:
Arrays.spliterator(Object[], int, int)
-
spliterator
public 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.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:
Arrays.spliterator(int[])
-
spliterator
public 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.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:
Arrays.spliterator(int[], int, int)
-
spliterator
public 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.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:
Arrays.spliterator(long[])
-
spliterator
public 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.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:
Arrays.spliterator(long[], int, int)
-
spliterator
public 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.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:
Arrays.spliterator(double[])
-
spliterator
public 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.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:
Arrays.spliterator(double[], int, int)
-
spliterator
public 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.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 a
Spliteratorusing 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 a
Spliteratorusing 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
Creates a
Spliterator.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
Creates a
Spliterator.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
Creates a
Spliterator.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
Creates a
Spliterator.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
Creates a
Spliterator.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
Creates a
Spliterator.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
public static <T> Iterator<T> iterator(Spliterator<? extends T> spliterator)
Creates an
Iteratorfrom 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 an
PrimitiveIterator.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 an
PrimitiveIterator.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 an
PrimitiveIterator.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
-