クラスSpliterators.AbstractIntSpliterator
- すべての実装されたインタフェース:
Spliterator<Integer>,Spliterator.OfInt,Spliterator.OfPrimitive<Integer, IntConsumer, Spliterator.OfInt>
- 含まれているクラス:
Spliterators
trySplitを実装する抽象Spliterator.OfIntです。
spliteratorを実装するには、拡張クラスはtryAdvanceを実装するだけでよい。 拡張クラスは、より高性能な実装を提供できる場合は、forEachRemainingをオーバーライドする必要があります。
- APIのノート:
- バランスの取れた並列計算が可能になるように要素を効率よく分割することが不可能または困難な場合に、このクラスを利用してスプリッテレータを作成できます。
制限付きの並列処理を許可するもう1つの方法として、このクラスを使用するかわりに、イテレータからスプリッテレータを作成することもできます(
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, 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 -
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedAbstractIntSpliterator(long est, int additionalCharacteristics) 指定された推定サイズおよび特性を報告するスプリッテレータを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明intこのSpliteratorおよびその要素の特性のセットを返します。longSpliterator.forEachRemaining(java.util.function.Consumer<? super T>)トラバーサルで検出される要素の推定数の推定を返します。無限、不明、または負荷が高すぎて計算できない場合は、Long.MAX_VALUEを返します。trySplit()このspliteratorをパーティション化できる場合に、要素に適用されるSpliteratorを返します。このメソッドから戻ると同時に、それらの要素にはこのSpliteratorが適用されなくなります。クラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェースjava.util.Spliteratorで宣言されたメソッド
getComparator, getExactSizeIfKnown, hasCharacteristicsインタフェースjava.util.Spliterator.OfIntで宣言されたメソッド
forEachRemaining, tryAdvanceインタフェースjava.util.Spliterator.OfPrimitiveで宣言されたメソッド
forEachRemaining, tryAdvance
-
コンストラクタの詳細
-
AbstractIntSpliterator
protected AbstractIntSpliterator(long est, int additionalCharacteristics) 指定された推定サイズおよび特性を報告するスプリッテレータを作成します。- パラメータ:
est- 既知の場合はこのスプリッテレータの推定サイズ。そうでない場合はLong.MAX_VALUE。additionalCharacteristics- このスプリッテレータのソースまたは要素の特性。SIZEDを報告する場合、このスプリッテレータはSUBSIZEDも追加で報告します。
-
-
メソッドの詳細
-
trySplit
public Spliterator.OfInt trySplit()このspliteratorをパーティション化できる場合に、要素に適用されるSpliteratorを返します。このメソッドから戻ると同時に、それらの要素にはこのSpliteratorが適用されなくなります。このスプリッテレータが
Spliterator.ORDEREDである場合、返されるスプリッテレータは要素の厳密な接頭辞をカバーする必要があります。このスプリッテレータが無限の要素数をカバーする場合を除き、繰り返し
trySplit()を呼び出すと、最終的にはnullが返されるはずです。 null以外が返されたときは次のようになります。- 分割前に
estimateSize()で報告される値は、分割後のこのスプリッテレータおよび返されたスプリッテレータのestimateSize()と等しいかそれより大きくなければなりません。さらに、 - このスプリッテレータが
SUBSIZEDである場合、分割前のこのスプリッテレータのestimateSize()は、分割後のこのスプリッテレータおよび返されたスプリッテレータのestimateSize()の合計と等しくなければなりません。
このメソッドはなんらかの理由で
nullを返す場合があります(空であるため、トラバース開始後に分割できないため、データ構造の制約のため、効率上の考慮事項のためなど)。 この実装では、制限付きの並列処理が許可されます。- 定義:
- インタフェース
Spliterator<Integer>のtrySplit - 戻り値:
- 要素の一部分に適用される
Spliterator。このスプリッテレータを分割できない場合はnull
- 分割前に
-
estimateSize
public long estimateSize()Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)トラバーサルで検出される要素の推定数の推定を返します。無限、不明、または負荷が高すぎて計算できない場合は、Long.MAX_VALUEを返します。このスプリッテレータが
Spliterator.SIZEDであり、まだ部分的にトラバースまたは分割されていない場合、あるいは、このスプリッテレータがSpliterator.SUBSIZEDであり、まだ部分的にトラバースされていない場合、この推定値は完全なトラバースで検出される要素数の正確なカウントでなければなりません。 それ以外の場合、この推定値は任意の不正確な値でかまいませんが、Spliterator.trySplit()の呼出しにわたって、指定されたとおりに減少する必要があります。- 定義:
- インタフェース
Spliterator<Integer>の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の値の論理和で表されます。trySplitの呼出しの前または呼出しと呼出しの間に、1つのスプリッテレータに対して繰り返しcharacteristics()を呼び出すと、常に同じ結果が返されるはずです。スプリッテレータが一貫性のない特性セット(1つの呼出しから返されたものか、複数の呼出しから返されたもの)を報告する場合、このスプリッテレータを使用した計算については何も保証できません。
- 定義:
- インタフェース
Spliterator<Integer>のcharacteristics - 実装要件:
- この実装は、作成時に報告された特性を返します。
- 戻り値:
- 特性の表現
-