鸿蒙OS Spliterators.AbstractSpliterator
Spliterators.AbstractSpliterator
java.lang.Object
|---java.util.Spliterators.AbstractSpliterator<T&
public abstract static class Spliterators.AbstractSpliterator<T>
extends Object
implements Spliterator<T>
实现 trySplit 以允许有限并行的抽象 Spliterator。
扩展类只需要实现 tryAdvance。 如果扩展类可以提供更高性能的实现,则应覆盖 forEach。
嵌套类摘要
从接口 java.util.Spliterator 继承的嵌套类/接口 |
---|
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitiveT,T_CONS,T_SPLITR> |
字段摘要
从接口 java.util.Spliterator 继承的字段 |
---|
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED |
构造函数摘要
修饰符 | 构造函数 | 描述 |
---|---|---|
protected | AbstractSpliterator(long est, int additionalCharacteristics) | 创建一个报告给定估计大小和附加特征的拆分器。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
int | characteristics() | 返回此 Spliterator 及其元素的一组特征。 |
long | estimateSize() | 返回 Spliterator.forEachRemaining(java.util.function.Consumer) 遍历将遇到的元素数量的估计值,如果无限、未知或计算过于昂贵,则返回 Long#MAX_VALUE。 |
SpliteratorT | 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)
创建一个报告给定估计大小和附加特征的拆分器。
参数:
参数名称 | 参数描述 |
---|---|
est | 此拆分器的估计大小(如果已知),否则为 Long.MAX_VALUE。 |
additionalCharacteristics | 此拆分器的源或元素的属性。 如果报告了 SIZED,则此拆分器将另外报告 SUBSIZED。 |
方法详情
trySplit
public SpliteratorT trySplit()
如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。
如果此 Spliterator 是 Spliterator.ORDERED,则返回的 Spliterator 必须涵盖元素的严格前缀。
除非此 Spliterator 涵盖无限数量的元素,否则对 trySplit() 的重复调用最终必须返回 null。 在非空返回时:
- 拆分前为estimateSize() 报告的值,拆分后必须大于或等于为此和返回的Spliterator 的estimateSize(); 和
- 如果此 Spliterator 是 SUBSIZED,则拆分前此 spliterator 的estimateSize() 必须等于此 spliterator 的estimateSize() 和拆分后返回的 Spliterator 之和。
此方法可能出于任何原因返回 null,包括空虚、遍历开始后无法拆分、数据结构约束和效率考虑。 此实现允许有限的并行性。
指定者:
接口 SpliteratorT 中的 trySplit
返回:
覆盖部分元素的 Spliterator,如果此 spliterator 无法拆分,则为 null
estimateSize
public long estimateSize()
返回 Spliterator.forEachRemaining(java.util.function.Consumer) 遍历将遇到的元素数量的估计值,如果无限、未知或计算过于昂贵,则返回 Long#MAX_VALUE。
如果此 Spliterator 是 Spliterator.SIZED 且尚未部分遍历或拆分,或者此 Spliterator 是 Spliterator.SUBSIZED 且尚未部分遍历,则此估计必须是完整遍历将遇到的元素的准确计数。 否则,这个估计可能是任意不准确的,但必须按照 Spliterator.trySplit() 调用的指定减少。
指定者:
接口 SpliteratorT 中的estimateSize
返回:
估计的大小,如果是无限的、未知的或计算成本太高,则为 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 之前或之间,应该总是返回相同的结果。
如果 Spliterator 报告了一组不一致的特征(从单个调用或跨多个调用返回的特征),则无法保证使用此 Spliterator 的任何计算。
指定者:
接口 SpliteratorT 中的特征
返回:
特征的表示