Module java.base
Package java.util

Class Spliterators

java.lang.Object
java.util.Spliterators

public final class Spliterators extends Object
操作或创建Spliterator及其原始特化版本Spliterator.OfIntSpliterator.OfLongSpliterator.OfDouble的静态类和方法。
自版本:
1.8
参见:
  • Method Details

    • emptySpliterator

      public static <T> Spliterator<T> emptySpliterator()
      创建一个空的Spliterator

      空的分割器报告Spliterator.SIZEDSpliterator.SUBSIZED。调用Spliterator.trySplit()总是返回null

      类型参数:
      T - 元素的类型
      返回:
      一个空的分割器
    • emptyIntSpliterator

      public static Spliterator.OfInt emptyIntSpliterator()
      创建一个空的Spliterator.OfInt

      空的分割器报告Spliterator.SIZEDSpliterator.SUBSIZED。调用Spliterator.trySplit()总是返回null

      返回:
      一个空的分割器
    • emptyLongSpliterator

      public static Spliterator.OfLong emptyLongSpliterator()
      创建一个空的Spliterator.OfLong

      空的分割器报告Spliterator.SIZEDSpliterator.SUBSIZED。调用Spliterator.trySplit()总是返回null

      返回:
      一个空的分割器
    • emptyDoubleSpliterator

      public static Spliterator.OfDouble emptyDoubleSpliterator()
      创建一个空的Spliterator.OfDouble

      空的分割器报告Spliterator.SIZEDSpliterator.SUBSIZED。调用Spliterator.trySplit()总是返回null

      返回:
      一个空的分割器
    • spliterator

      public static <T> Spliterator<T> spliterator(Object[] array, int additionalCharacteristics)
      使用自定义的一组分割器特性,创建一个覆盖给定数组元素的Spliterator

      此方法作为Spliterator的实现便利性提供,用于存储部分元素在数组中的Spliterator,并需要对Spliterator特性进行精细控制。大多数需要数组的Spliterator的其他情况应该使用Arrays.spliterator(Object[])

      返回的分割器总是报告特性SIZEDSUBSIZED。调用者可以提供额外的特性供分割器报告;通常还会指定IMMUTABLEORDERED

      类型参数:
      T - 元素的类型
      参数:
      array - 假定在使用过程中未修改的数组
      additionalCharacteristics - 此分割器的源或元素的额外分割器特性,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      参见:
    • spliterator

      public static <T> Spliterator<T> spliterator(Object[] array, int fromIndex, int toIndex, int additionalCharacteristics)
      使用自定义的一组分割器特性,创建一个覆盖给定数组元素范围的Spliterator

      此方法作为Spliterator的实现便利性提供,用于存储部分元素在数组中的Spliterator,并需要对Spliterator特性进行精细控制。大多数需要数组的Spliterator的其他情况应该使用Arrays.spliterator(Object[])

      返回的分割器总是报告特性SIZEDSUBSIZED。调用者可以提供额外的特性供分割器报告;通常还会指定IMMUTABLEORDERED

      类型参数:
      T - 元素的类型
      参数:
      array - 假定在使用过程中未修改的数组
      fromIndex - 要覆盖的最小索引(包括)
      toIndex - 要覆盖的最大索引(不包括)
      additionalCharacteristics - 此分割器的源或元素的额外分割器特性,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      ArrayIndexOutOfBoundsException - 如果fromIndex为负数,toIndex小于fromIndex,或toIndex大于数组大小
      参见:
    • spliterator

      public static Spliterator.OfInt spliterator(int[] array, int additionalCharacteristics)
      使用自定义的一组分割器特性,创建一个覆盖给定数组元素的Spliterator.OfInt

      此方法作为Spliterator的实现便利性提供,用于存储部分元素在数组中的Spliterator,并需要对Spliterator特性进行精细控制。大多数需要数组的Spliterator的其他情况应该使用Arrays.spliterator(int[])

      返回的分割器总是报告特性SIZEDSUBSIZED。调用者可以提供额外的特性供分割器报告;通常还会指定IMMUTABLEORDERED

      参数:
      array - 数组,在使用过程中假定未被修改
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      参见:
    • spliterator

      public static Spliterator.OfInt spliterator(int[] array, int fromIndex, int toIndex, int additionalCharacteristics)
      创建一个Spliterator.OfInt,覆盖给定数组范围的元素,使用自定义的分割器特征。

      此方法作为对那些将元素部分存储在数组中的Spliterator提供的实现便利,并需要对Spliterator特征进行精细控制。大多数需要数组分割器的其他情况应该使用Arrays.spliterator(int[], int, int)

      返回的分割器总是报告特征SIZEDSUBSIZED。调用者可以提供额外的特征供分割器报告;通常还会指定IMMUTABLEORDERED

      参数:
      array - 数组,在使用过程中假定未被修改
      fromIndex - 要覆盖的最小索引(包括)
      toIndex - 要覆盖的最大索引的下一个索引
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      ArrayIndexOutOfBoundsException - 如果fromIndex为负数,toIndex小于fromIndex,或toIndex大于数组大小
      参见:
    • spliterator

      public static Spliterator.OfLong spliterator(long[] array, int additionalCharacteristics)
      创建一个Spliterator.OfLong,覆盖给定数组的元素,使用自定义的分割器特征。

      此方法作为对那些将元素部分存储在数组中的Spliterator提供的实现便利,并需要对Spliterator特征进行精细控制。大多数需要数组分割器的其他情况应该使用Arrays.spliterator(long[])

      返回的分割器总是报告特征SIZEDSUBSIZED。调用者可以提供额外的特征供分割器报告;通常还会指定IMMUTABLEORDERED

      参数:
      array - 数组,在使用过程中假定未被修改
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      参见:
    • spliterator

      public static Spliterator.OfLong spliterator(long[] array, int fromIndex, int toIndex, int additionalCharacteristics)
      创建一个Spliterator.OfLong,覆盖给定数组范围的元素,使用自定义的分割器特征。

      此方法作为对那些将元素部分存储在数组中的Spliterator提供的实现便利,并需要对Spliterator特征进行精细控制。大多数需要数组分割器的其他情况应该使用Arrays.spliterator(long[], int, int)

      返回的分割器总是报告特征SIZEDSUBSIZED。调用者可以提供额外的特征供分割器报告(例如,如果已知数组不会再被修改,请指定IMMUTABLE;如果认为数组数据具有遭遇顺序,请指定ORDERED)。方法Arrays.spliterator(long[], int, int)通常可以替代,它返回一个报告SIZEDSUBSIZEDIMMUTABLEORDERED的分割器。

      参数:
      array - 数组,在使用过程中假定未被修改
      fromIndex - 要覆盖的最小索引(包括)
      toIndex - 要覆盖的最大索引的下一个索引
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      ArrayIndexOutOfBoundsException - 如果fromIndex为负数,toIndex小于fromIndex,或toIndex大于数组大小
      参见:
    • spliterator

      public static Spliterator.OfDouble spliterator(double[] array, int additionalCharacteristics)
      创建一个Spliterator.OfDouble,覆盖给定数组的元素,使用自定义的分割器特征。

      此方法作为对那些将元素部分存储在数组中的Spliterator提供的实现便利,并需要对Spliterator特征进行精细控制。大多数需要数组分割器的其他情况应该使用Arrays.spliterator(double[])

      返回的分割器总是报告特征SIZEDSUBSIZED。调用者可以提供额外的特征供分割器报告;通常还会指定IMMUTABLEORDERED

      参数:
      array - 数组,在使用过程中假定未被修改
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      参见:
    • spliterator

      public static Spliterator.OfDouble spliterator(double[] array, int fromIndex, int toIndex, int additionalCharacteristics)
      创建一个Spliterator.OfDouble,覆盖给定数组范围的元素,使用自定义的分割器特征。

      此方法作为对那些将元素部分存储在数组中的Spliterator提供的实现便利,并需要对Spliterator特征进行精细控制。大多数需要数组分割器的其他情况应该使用Arrays.spliterator(double[], int, int)

      返回的分割器总是报告特征SIZEDSUBSIZED。调用者可以提供额外的特征供分割器报告(例如,如果已知数组不会再被修改,请指定IMMUTABLE;如果认为数组数据具有遭遇顺序,请指定ORDERED)。方法Arrays.spliterator(long[], int, int)通常可以替代,它返回一个报告SIZEDSUBSIZEDIMMUTABLEORDERED的分割器。

      参数:
      array - 数组,在使用过程中假定未被修改
      fromIndex - 要覆盖的最小索引(包括)
      toIndex - 要覆盖的最大索引的下一个索引
      additionalCharacteristics - 此分割器源或元素的额外分割器特征,超出总是报告的SIZEDSUBSIZED
      返回:
      一个数组的分割器
      抛出:
      NullPointerException - 如果给定的数组为null
      ArrayIndexOutOfBoundsException - 如果fromIndex为负数,toIndex小于fromIndex,或toIndex大于数组大小
      参见:
    • spliterator

      public static <T> Spliterator<T> spliterator(Collection<? extends T> c, int characteristics)
      创建一个Spliterator,使用给定集合的iterator作为元素源,并将其size作为初始大小。

      分割器是延迟绑定的,继承集合的迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      类型参数:
      T - 元素的类型
      参数:
      c - 集合
      characteristics - 此分割迭代器的源或元素的特征。特征SIZEDSUBSIZED除非提供CONCURRENT,否则还会被报告。
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的集合为null
    • spliterator

      public static <T> Spliterator<T> spliterator(Iterator<? extends T> iterator, long size, int characteristics)
      使用给定的Iterator作为元素源创建一个Spliterator,并报告给定的初始大小。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,或者初始报告的大小与源中实际元素数量不相等,则拆分和遍历的行为是未定义的。

      类型参数:
      T - 元素的类型
      参数:
      iterator - 源的迭代器
      size - 源中的元素数量,作为初始estimateSize报告
      characteristics - 此分割迭代器的源或元素的特征。特征SIZEDSUBSIZED除非提供CONCURRENT,否则还会被报告。
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliteratorUnknownSize

      public static <T> Spliterator<T> spliteratorUnknownSize(Iterator<? extends T> iterator, int characteristics)
      使用给定的Iterator作为元素源创建一个Spliterator,没有初始大小估计。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,则拆分和遍历的行为是未定义的。

      类型参数:
      T - 元素的类型
      参数:
      iterator - 源的迭代器
      characteristics - 此分割迭代器的源或元素的特征(如果提供SIZEDSUBSIZED,则会被忽略且不报告)
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliterator

      public static Spliterator.OfInt spliterator(PrimitiveIterator.OfInt iterator, long size, int characteristics)
      使用给定的IntStream.IntIterator作为元素源创建一个Spliterator.OfInt,并报告给定的初始大小。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,或者初始报告的大小与源中实际元素数量不相等,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      size - 源中的元素数量,作为初始estimateSize报告
      characteristics - 此分割迭代器的源或元素的特征。特征SIZEDSUBSIZED除非提供CONCURRENT,否则还会被报告。
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliteratorUnknownSize

      public static Spliterator.OfInt spliteratorUnknownSize(PrimitiveIterator.OfInt iterator, int characteristics)
      使用给定的LongStream.LongIterator作为元素源创建一个Spliterator.OfInt,没有初始大小估计。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      characteristics - 此分割迭代器的源或元素的特征(如果提供SIZEDSUBSIZED,则会被忽略且不报告)
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliterator

      public static Spliterator.OfLong spliterator(PrimitiveIterator.OfLong iterator, long size, int characteristics)
      使用给定的LongStream.LongIterator作为元素源创建一个Spliterator.OfLong,并报告给定的初始大小。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,或者初始报告的大小与源中实际元素数量不相等,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      size - 源中的元素数量,作为初始estimateSize报告
      characteristics - 此分割迭代器的源或元素的特征。特征SIZEDSUBSIZED除非提供CONCURRENT,否则还会被报告。
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliteratorUnknownSize

      public static Spliterator.OfLong spliteratorUnknownSize(PrimitiveIterator.OfLong iterator, int characteristics)
      使用给定的LongStream.LongIterator作为元素源创建一个Spliterator.OfLong,没有初始大小估计。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      characteristics - 此分割迭代器的源或元素的特征(如果提供SIZEDSUBSIZED,则会被忽略且不报告)
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliterator

      public static Spliterator.OfDouble spliterator(PrimitiveIterator.OfDouble iterator, long size, int characteristics)
      使用给定的DoubleStream.DoubleIterator作为元素源创建一个Spliterator.OfDouble,并报告给定的初始大小。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,或者初始报告的大小与源中实际元素数量不相等,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      size - 源中的元素数量,作为初始estimateSize报告
      characteristics - 此分割迭代器的源或元素的特征。特征SIZEDSUBSIZED除非提供CONCURRENT,否则还会被报告。
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • spliteratorUnknownSize

      public static Spliterator.OfDouble spliteratorUnknownSize(PrimitiveIterator.OfDouble iterator, int characteristics)
      使用给定的DoubleStream.DoubleIterator作为元素源创建一个Spliterator.OfDouble,没有初始大小估计。

      分割迭代器不是延迟绑定,继承迭代器的快速失败属性,并实现trySplit以允许有限的并行性。

      应通过分割迭代器来遍历元素。如果在返回分割迭代器后对迭代器进行操作,则拆分和遍历的行为是未定义的。

      参数:
      iterator - 源的迭代器
      characteristics - 此分割迭代器的源或元素的特征(如果提供SIZEDSUBSIZED,则会被忽略且不报告)
      返回:
      从迭代器创建的分割迭代器
      抛出:
      NullPointerException - 如果给定的迭代器为null
    • iterator

      public static <T> Iterator<T> iterator(Spliterator<? extends T> spliterator)
      Spliterator创建一个Iterator

      应通过迭代器来遍历元素。如果在返回迭代器后对分割迭代器进行操作,则遍历的行为是未定义的。

      类型参数:
      T - 元素的类型
      参数:
      spliterator - Spliterator
      返回:
      一个迭代器
      抛出:
      NullPointerException - 如果给定的Spliterator为null
    • iterator

      public static PrimitiveIterator.OfInt iterator(Spliterator.OfInt spliterator)
      Spliterator.OfInt创建一个PrimitiveIterator.OfInt

      应通过迭代器来遍历元素。如果在返回迭代器后继续操作Spliterator,则遍历行为是未定义的。

      参数:
      spliterator - Spliterator
      返回:
      一个迭代器
      抛出:
      NullPointerException - 如果给定的Spliterator为null
    • iterator

      public static PrimitiveIterator.OfLong iterator(Spliterator.OfLong spliterator)
      Spliterator.OfLong创建一个PrimitiveIterator.OfLong

      应通过迭代器来遍历元素。如果在返回迭代器后继续操作Spliterator,则遍历行为是未定义的。

      参数:
      spliterator - Spliterator
      返回:
      一个迭代器
      抛出:
      NullPointerException - 如果给定的Spliterator为null
    • iterator

      public static PrimitiveIterator.OfDouble iterator(Spliterator.OfDouble spliterator)
      Spliterator.OfDouble创建一个PrimitiveIterator.OfDouble

      应通过迭代器来遍历元素。如果在返回迭代器后继续操作Spliterator,则遍历行为是未定义的。

      参数:
      spliterator - Spliterator
      返回:
      一个迭代器
      抛出:
      NullPointerException - 如果给定的Spliterator为null