Module java.base
Package java.util

Class Spliterators

    • Method Detail

      • spliterator

        public static <T> Spliterator<T> spliterator​(Object[] array,                                             int additionalCharacteristics)
        Creates aSpliterator 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 useArrays.spliterator(Object[]).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Type Parameters:
        T - Type of elements
        Parameters:
        array - The array, assumed to be unmodified during use
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which 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 aSpliterator 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 useArrays.spliterator(Object[]).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Type Parameters:
        T - Type of elements
        Parameters:
        array - The array, assumed to be unmodified during use
        fromIndex - The least index (inclusive) to cover
        toIndex - One past the greatest index to cover
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which are always reported
        Returns:
        A spliterator for an array
        Throws:
        NullPointerException - if the given array isnull
        ArrayIndexOutOfBoundsException - iffromIndex is negative,toIndex is less thanfromIndex, ortoIndex is greater than the array size
        See Also:
        Arrays.spliterator(Object[], int, int)
      • spliterator

        public static Spliterator.OfInt spliterator​(int[] array,                                            int additionalCharacteristics)
        Creates aSpliterator.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 useArrays.spliterator(int[]).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Parameters:
        array - The array, assumed to be unmodified during use
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which 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 aSpliterator.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 useArrays.spliterator(int[], int, int).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Parameters:
        array - The array, assumed to be unmodified during use
        fromIndex - The least index (inclusive) to cover
        toIndex - One past the greatest index to cover
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which are always reported
        Returns:
        A spliterator for an array
        Throws:
        NullPointerException - if the given array isnull
        ArrayIndexOutOfBoundsException - iffromIndex is negative,toIndex is less thanfromIndex, ortoIndex is greater than the array size
        See Also:
        Arrays.spliterator(int[], int, int)
      • spliterator

        public static Spliterator.OfLong spliterator​(long[] array,                                             int additionalCharacteristics)
        Creates aSpliterator.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 useArrays.spliterator(long[]).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Parameters:
        array - The array, assumed to be unmodified during use
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which 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 aSpliterator.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 useArrays.spliterator(long[], int, int).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. 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 use
        fromIndex - The least index (inclusive) to cover
        toIndex - One past the greatest index to cover
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which are always reported
        Returns:
        A spliterator for an array
        Throws:
        NullPointerException - if the given array isnull
        ArrayIndexOutOfBoundsException - iffromIndex is negative,toIndex is less thanfromIndex, ortoIndex is greater than the array size
        See Also:
        Arrays.spliterator(long[], int, int)
      • spliterator

        public static Spliterator.OfDouble spliterator​(double[] array,                                               int additionalCharacteristics)
        Creates aSpliterator.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 useArrays.spliterator(double[]).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. The caller may provide additional characteristics for the spliterator to report; it is common to additionally specifyIMMUTABLE andORDERED.

        Parameters:
        array - The array, assumed to be unmodified during use
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which 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 aSpliterator.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 useArrays.spliterator(double[], int, int).

        The returned spliterator always reports the characteristicsSIZED andSUBSIZED. 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 use
        fromIndex - The least index (inclusive) to cover
        toIndex - One past the greatest index to cover
        additionalCharacteristics - Additional spliterator characteristics of this spliterator's source or elements beyondSIZED andSUBSIZED which are always reported
        Returns:
        A spliterator for an array
        Throws:
        NullPointerException - if the given array isnull
        ArrayIndexOutOfBoundsException - iffromIndex is negative,toIndex is less thanfromIndex, ortoIndex is 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 aSpliterator using 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 implementstrySplit to permit limited parallelism.

        Type Parameters:
        T - Type of elements
        Parameters:
        c - The collection
        characteristics - Characteristics of this spliterator's source or elements. The characteristicsSIZED andSUBSIZED are additionally reported unlessCONCURRENT is 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 aSpliterator using a givenIterator as the source of elements, and with a given initially reported size.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Type Parameters:
        T - Type of elements
        Parameters:
        iterator - The iterator for the source
        size - The number of elements in the source, to be reported as initialestimateSize
        characteristics - Characteristics of this spliterator's source or elements. The characteristicsSIZED andSUBSIZED are additionally reported unlessCONCURRENT is 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 aSpliterator using a givenIterator as the source of elements, with no initial size estimate.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Type Parameters:
        T - Type of elements
        Parameters:
        iterator - The iterator for the source
        characteristics - Characteristics of this spliterator's source or elements (SIZED andSUBSIZED, 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.OfInt using a givenIntStream.IntIterator as the source of elements, and with a given initially reported size.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        size - The number of elements in the source, to be reported as initialestimateSize.
        characteristics - Characteristics of this spliterator's source or elements. The characteristicsSIZED andSUBSIZED are additionally reported unlessCONCURRENT is 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.OfInt using a givenIntStream.IntIterator as the source of elements, with no initial size estimate.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        characteristics - Characteristics of this spliterator's source or elements (SIZED andSUBSIZED, 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.OfLong using a givenLongStream.LongIterator as the source of elements, and with a given initially reported size.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        size - The number of elements in the source, to be reported as initialestimateSize.
        characteristics - Characteristics of this spliterator's source or elements. The characteristicsSIZED andSUBSIZED are additionally reported unlessCONCURRENT is 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.OfLong using a givenLongStream.LongIterator as the source of elements, with no initial size estimate.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        characteristics - Characteristics of this spliterator's source or elements (SIZED andSUBSIZED, 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.OfDouble using a givenDoubleStream.DoubleIterator as the source of elements, and with a given initially reported size.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        size - The number of elements in the source, to be reported as initialestimateSize
        characteristics - Characteristics of this spliterator's source or elements. The characteristicsSIZED andSUBSIZED are additionally reported unlessCONCURRENT is 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.OfDouble using a givenDoubleStream.DoubleIterator as the source of elements, with no initial size estimate.

        The spliterator is notlate-binding, inherits thefail-fast properties of the iterator, and implementstrySplit 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.

        Parameters:
        iterator - The iterator for the source
        characteristics - Characteristics of this spliterator's source or elements (SIZED andSUBSIZED, 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 anIterator from 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

        public static PrimitiveIterator.OfInt iterator​(Spliterator.OfInt spliterator)
        Creates anPrimitiveIterator.OfInt from 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

        public static PrimitiveIterator.OfLong iterator​(Spliterator.OfLong spliterator)
        Creates anPrimitiveIterator.OfLong from 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

        public static PrimitiveIterator.OfDouble iterator​(Spliterator.OfDouble spliterator)
        Creates anPrimitiveIterator.OfDouble from 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