java.lang.Object
java.util.Spliterators.AbstractIntSpliterator
- 所有已实现的接口:
Spliterator<Integer>,Spliterator.OfInt,Spliterator.OfPrimitive<Integer,IntConsumer, Spliterator.OfInt>
- 封闭类:
Spliterators
public abstract static class Spliterators.AbstractIntSpliterator extends Object implements Spliterator.OfInt
实现
trySplit 以允许有限并行性的抽象 Spliterator.OfInt。
要实现拆分器,扩展类只需要实现 tryAdvance 。如果扩展类可以提供更高性能的实现,则它应该覆盖 forEachRemaining 。
- API 注意:
-
当无法或难以以允许平衡并行计算的方式有效地划分元素时,此类有助于创建拆分器。
使用此类的另一种方法(也允许有限的并行性)是从迭代器创建拆分器(请参阅
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, long, int)。根据具体情况,使用迭代器可能比扩展此类更容易或更方便。例如,如果已经有一个可用的迭代器,那么就不需要扩展这个类。 - 自从:
- 1.8
- 参见:
-
内部类总结
在接口 java.util.Spliterator 中声明的嵌套类/接口
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>> -
字段摘要
在接口 java.util.Spliterator 中声明的字段
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED -
构造方法总结
构造方法修饰符构造方法描述protectedAbstractIntSpliterator(long est, int additionalCharacteristics) 创建报告给定估计大小和特征的拆分器。 -
方法总结
修饰符和类型方法描述int返回此 Spliterator 及其元素的一组特征。long返回Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)遍历将遇到的元素数量的估计值,或者如果无限、未知或计算成本太高则返回Long.MAX_VALUE。trySplit()如果此 spliterator 可以分区,则返回一个 Spliterator 重写元素,从该方法返回时,该 Spliterator 将不被此 Spliterator 重写。在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 java.util.Spliterator 中声明的方法
getComparator, getExactSizeIfKnown, hasCharacteristics在接口 java.util.Spliterator.OfInt 中声明的方法
forEachRemaining, tryAdvance在接口 java.util.Spliterator.OfPrimitive 中声明的方法
forEachRemaining, tryAdvance
-
构造方法详细信息
-
AbstractIntSpliterator
protected AbstractIntSpliterator(long est, int additionalCharacteristics) 创建报告给定估计大小和特征的拆分器。- 参数:
est- 此拆分器的估计大小(如果已知),否则为Long.MAX_VALUE。additionalCharacteristics- 此拆分器的源或元素的属性。如果SIZED被报告,那么这个拆分器将另外报告SUBSIZED。
-
-
方法详情
-
trySplit
如果此 spliterator 可以分区,则返回一个 Spliterator 重写元素,从该方法返回时,该 Spliterator 将不被此 Spliterator 重写。如果此 Spliterator 是
Spliterator.ORDERED,则返回的 Spliterator 必须覆盖元素的严格前缀。除非此 Spliterator 涵盖无限数量的元素,否则对
trySplit()的重复调用最终必须返回null。返回非空值时:- 拆分前为
estimateSize()报告的值,在拆分后必须大于或等于此和返回的 Spliterator 的estimateSize();和 - 如果此 Spliterator 是
SUBSIZED,则拆分前此拆分器的estimateSize()必须等于此拆分器的estimateSize()和拆分后返回的 Spliterator 的总和。
该方法可能出于任何原因返回
null,包括空、遍历开始后无法拆分、数据结构约束和效率考虑。此实现允许有限的并行性。- 指定者:
trySplit在接口Spliterator<Integer>中- 返回:
-
a
Spliterator覆盖元素的某些部分,或者null如果不能拆分此拆分器
- 拆分前为
-
estimateSize
public long estimateSize()返回Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)遍历将遇到的元素数量的估计值,或者如果无限、未知或计算成本太高则返回Long.MAX_VALUE。如果此 Spliterator 是
Spliterator.SIZED并且尚未被部分遍历或拆分,或者此 Spliterator 是Spliterator.SUBSIZED并且尚未被部分遍历,则此估计必须是完整遍历将遇到的元素的准确计数。否则,这个估计可能是任意不准确的,但必须按照Spliterator.trySplit()的调用指定的方式减少。- 指定者:
estimateSize在接口Spliterator<Integer>中- 实现要求:
- 此实现返回创建时报告的估计大小,如果估计大小已知,则在拆分时减小大小。
- 返回:
-
估计大小,或者
Long.MAX_VALUE如果无穷大、未知或计算成本太高。
-
characteristics
public int characteristics()返回此 Spliterator 及其元素的一组特征。结果表示为来自Spliterator.ORDERED、Spliterator.DISTINCT、Spliterator.SORTED、Spliterator.SIZED、Spliterator.NONNULL、Spliterator.IMMUTABLE、Spliterator.CONCURRENT、Spliterator.SUBSIZED的 ORed 值。在调用trySplit之前或之间,在给定的拆分器上重复调用characteristics()应该始终返回相同的结果。如果 Spliterator 报告一组不一致的特征(从单次调用返回的特征或跨多个调用返回的特征),则无法保证使用此 Spliterator 进行任何计算。
- 指定者:
characteristics在接口Spliterator<Integer>中- 实现要求:
- 此实现返回创建时报告的特征。
- 返回:
- 特征的表示
-