阅读(3775) (0)

鸿蒙OS Spliterators.AbstractSpliterator

2022-06-16 16:29:21 更新

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 中的特征

返回:

特征的表示