java.lang.Object
java.util.Spliterators.AbstractSpliterator<T>
- 类型参数:
T- 此 Spliterator 返回的元素类型
- 所有已实现的接口:
Spliterator<T>
- 封闭类:
Spliterators
public abstract static class Spliterators.AbstractSpliterator<T> extends Object implements Spliterator <T>
- API 注意:
-
当无法或难以以允许平衡并行计算的方式有效地划分元素时,此类有助于创建拆分器。
使用此类的另一种方法(也允许有限的并行性)是从迭代器创建拆分器(请参阅
Spliterators.spliterator(Iterator, 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 -
构造方法总结
构造方法修饰符构造方法描述protectedAbstractSpliterator(long est, int additionalCharacteristics) 创建报告给定估计大小和 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 中声明的方法
forEachRemaining, getComparator, getExactSizeIfKnown, hasCharacteristics, tryAdvance
-
构造方法详细信息
-
AbstractSpliterator
protected AbstractSpliterator(long est, int additionalCharacteristics) 创建报告给定估计大小和 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<T>中- 返回:
-
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<T>中- 实现要求:
- 此实现返回创建时报告的估计大小,如果估计大小已知,则在拆分时减小大小。
- 返回:
-
估计大小,或者
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<T>中- 实现要求:
- 此实现返回创建时报告的特征。
- 返回:
- 特征的表示
-