鴻蒙OS Spliterators.AbstractSpliterator

2022-08-08 15:29 更新

Spliterators.AbstractSpliterator

java.lang.Object

|---java.util.Spliterators.AbstractSpliterator<T&

public abstract static class Spliterators.AbstractSpliterator<T>
extends Object
implements Spliterator<T>

實現(xiàn) trySplit 以允許有限并行的抽象 Spliterator。

擴展類只需要實現(xiàn) tryAdvance。 如果擴展類可以提供更高性能的實現(xiàn),則應覆蓋 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) 創(chuàng)建一個報告給定估計大小和附加特征的拆分器。

方法總結

修飾符和類型 方法 描述
int characteristics() 返回此 Spliterator 及其元素的一組特征。
long estimateSize() 返回 Spliterator.forEachRemaining(java.util.function.Consumer) 遍歷將遇到的元素數量的估計值,如果無限、未知或計算過于昂貴,則返回 Long#MAX_VALUE。
SpliteratorT trySplit() 如果此 spliterator 可以分區(qū),則返回一個 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)

創(chuàng)建一個報告給定估計大小和附加特征的拆分器。

參數:

參數名稱 參數描述
est 此拆分器的估計大?。ㄈ绻阎駝t為 Long.MAX_VALUE。
additionalCharacteristics 此拆分器的源或元素的屬性。 如果報告了 SIZED,則此拆分器將另外報告 SUBSIZED。

方法詳情

trySplit

public SpliteratorT trySplit()

如果此 spliterator 可以分區(qū),則返回一個 Spliterator 覆蓋元素,從該方法返回時,該 Spliterator 不會被此 Spliterator 覆蓋。

如果此 Spliterator 是 Spliterator.ORDERED,則返回的 Spliterator 必須涵蓋元素的嚴格前綴。

除非此 Spliterator 涵蓋無限數量的元素,否則對 trySplit() 的重復調用最終必須返回 null。 在非空返回時:

  • 拆分前為estimateSize() 報告的值,拆分后必須大于或等于為此和返回的Spliterator 的estimateSize(); 和
  • 如果此 Spliterator 是 SUBSIZED,則拆分前此 spliterator 的estimateSize() 必須等于此 spliterator 的estimateSize() 和拆分后返回的 Spliterator 之和。

此方法可能出于任何原因返回 null,包括空虛、遍歷開始后無法拆分、數據結構約束和效率考慮。 此實現(xiàn)允許有限的并行性。

指定者:

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

返回:

特征的表示

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號