鴻蒙OS Spliterators.AbstractLongSpliterator

2022-08-08 15:24 更新

Spliterators.AbstractLongSpliterator

java.lang.Object

|---java.util.Spliterators.AbstractLongSpliterator

public abstract static class Spliterators.AbstractLongSpliterator
extends Object
implements Spliterator.OfLong

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

要實(shí)現(xiàn)拆分器,擴(kuò)展類只需要實(shí)現(xiàn) Spliterator.OfLong.tryAdvance(java.util.function.LongConsumer) tryAdvance}。 如果擴(kuò)展類可以提供更高性能的實(shí)現(xiàn),則應(yīng)覆蓋 Spliterator.OfLong.forEachRemaining(java.util.function.LongConsumer) 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

構(gòu)造函數(shù)摘要

修飾符 構(gòu)造函數(shù) 描述
protected AbstractLongSpliterator(long est, int additionalCharacteristics) 創(chuàng)建一個(gè)報(bào)告給定估計(jì)大小和特征的拆分器。

方法總結(jié)

修飾符和類型 方法 描述
int characteristics() 返回此 Spliterator 及其元素的一組特征。
long estimateSize() 返回 Spliterator.forEachRemaining(java.util.function.Consumer) 遍歷將遇到的元素?cái)?shù)量的估計(jì)值,如果無限、未知或計(jì)算過于昂貴,則返回 Long#MAX_VALUE。
Spliterator.OfLong trySplit() 如果此 spliterator 可以分區(qū),則返回一個(gè) Spliterator 覆蓋元素,從該方法返回時(shí),該 Spliterator 不會(huì)被此 Spliterator 覆蓋。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
從接口 java.util.Spliterator 繼承的方法
getComparator, getExactSizeIfKnown, hasCharacteristics
從接口 java.util.Spliterator.OfLong 繼承的方法
forEachRemaining, forEachRemaining, tryAdvance, tryAdvance

構(gòu)造函數(shù)詳細(xì)信息

AbstractLongSpliterator

protected AbstractLongSpliterator(long est, int additionalCharacteristics)

創(chuàng)建一個(gè)報(bào)告給定估計(jì)大小和特征的拆分器。

參數(shù):

參數(shù)名稱 參數(shù)描述
est 此拆分器的估計(jì)大?。ㄈ绻阎?,否則為 Long.MAX_VALUE。
additionalCharacteristics 此拆分器的源或元素的屬性。 如果報(bào)告了 SIZED,則此拆分器將另外報(bào)告 SUBSIZED。

方法詳情

trySplit

public Spliterator.OfLong trySplit()

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

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

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

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

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

指定者:

接口 SpliteratorLong 中的 trySplit

指定者:

接口 Spliterator.OfLong 中的 trySplit

指定者:

接口 Spliterator.OfPrimitiveLong,LongConsumer,Spliterator.OfLong 中的 trySplit

返回:

覆蓋部分元素的 Spliterator,如果此 spliterator 無法拆分,則為 null

estimateSize

public long estimateSize()

返回 Spliterator.forEachRemaining(java.util.function.Consumer) 遍歷將遇到的元素?cái)?shù)量的估計(jì)值,如果無限、未知或計(jì)算過于昂貴,則返回 Long#MAX_VALUE。

如果此 Spliterator 是 Spliterator.SIZED 且尚未部分遍歷或拆分,或者此 Spliterator 是 Spliterator.SUBSIZED 且尚未部分遍歷,則此估計(jì)必須是完整遍歷將遇到的元素的準(zhǔn)確計(jì)數(shù)。 否則,這個(gè)估計(jì)可能是任意不準(zhǔn)確的,但必須按照 Spliterator.trySplit() 調(diào)用的指定減少。

指定者:

接口 SpliteratorLong 中的estimateSize

返回:

估計(jì)的大小,如果是無限的、未知的或計(jì)算成本太高,則為 Long.MAX_VALUE。

characteristics

public int characteristics()

返回此 Spliterator 及其元素的一組特征。 結(jié)果表示為 Spliterator.ORDERED、Spliterator.DISTINCT、Spliterator.SORTED、Spliterator.SIZED、Spliterator.NONNULL、Spliterator.IMMUTABLE、Spliterator.CONCURRENT、Spliterator.SUBSIZED 的 ORed 值。 在給定拆分器上重復(fù)調(diào)用特性(),在調(diào)用 trySplit 之前或之間,應(yīng)該總是返回相同的結(jié)果。

如果 Spliterator 報(bào)告了一組不一致的特征(從單個(gè)調(diào)用或跨多個(gè)調(diào)用返回的特征),則無法保證使用此 Spliterator 的任何計(jì)算。

指定者:

接口 SpliteratorLong 中的特征

返回:

特征的表示

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)