クラス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
- 関連項目:
-
ネストされたクラスのサマリー
インタフェースSpliteratorで宣言されたネストされたクラス/インタフェース
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS, T_SPLITR> 修飾子と型インタフェース説明static interfacedouble値に特化されたスプリッテレータです。static interfaceint値に特化されたスプリッテレータです。static interfacelong値に特化されたスプリッテレータです。static interfaceSpliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS, T_SPLITR>> プリミティブ値に特化されたスプリッテレータです。 -
フィールドのサマリー
インタフェースSpliteratorで宣言されたフィールド
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED修飾子と型フィールド説明static final int外部同期を使用せずに、複数のスレッドで並行して要素のソースを安全に変更できる(追加、置換、削除が可能)ことを示す特性値です。static final int検出された要素の各ペアx, yに対して!x.equals(y)であることを示す特性値です。static final int要素のソースが構造的に変更不可であることを示す特性値です。つまり、要素の追加、置換および削除ができないため、トラバース中に変更が発生する可能性はありません。static final intソースで検出される要素がnullではないことが保証されることを示す特性値です。static final int要素の検出順序が定義されていることを示す特性値です。static final int構造的なソース変更がない場合に、トラバースまたは分割の前にestimateSize()から返される値が完全なトラバースで検出される要素数の正確なカウントを表す有限サイズを表すことを示す特性値です。static final int検出順序が定義済みのソート順序に従うことを示す特性値です。static final inttrySplit()で生成されたすべてのスプリッテレータがSpliterator.SIZEDとSpliterator.SUBSIZEDの両方であることを示す特性値です。 -
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedAbstractIntSpliterator(long est, int additionalCharacteristics) 指定された推定サイズおよび特性を報告するスプリッテレータを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明intこのSpliteratorおよびその要素の特性のセットを返します。longSpliterator.forEachRemaining(Consumer)トラバーサルによって検出される要素数の見積りを返します。または、計算するには無限、不明または高すぎる場合はLong.MAX_VALUEを返します。trySplit()このspliteratorをパーティション化できる場合に、要素に適用されるSpliteratorを返します。このメソッドから戻ると同時に、それらの要素にはこのSpliteratorが適用されなくなります。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。インタフェースSpliteratorで宣言されたメソッド
getComparator, getExactSizeIfKnown, hasCharacteristics修飾子と型メソッド説明default Comparator<? super Integer> このスプリッテレータのソースがComparatorによるSpliterator.SORTEDである場合は、そのComparatorを返します。default longこのスプリッテレータがSpliterator.SIZEDである場合はSpliterator.estimateSize()を返し、それ以外の場合は-1を返す簡易メソッドです。default booleanhasCharacteristics(int characteristics) このスプリッテレータのSpliterator.characteristics()に指定された特性がすべて含まれる場合はtrueを返します。インタフェースで宣言されたメソッド Spliterator.OfInt
forEachRemaining, tryAdvance修飾子と型メソッド説明default voidforEachRemaining(Consumer<? super Integer> action) すべての要素の処理が完了するかアクションから例外がスローされるまで、現在のスレッド内で残りの各要素に対して指定されたアクションをシーケンシャルに実行します。default booleantryAdvance(Consumer<? super Integer> action) 残りの要素が存在する場合: 指定されたアクションを実行し、trueを返します。それ以外の場合は、falseを返します。インタフェースで宣言されたメソッド Spliterator.OfPrimitive
forEachRemaining, tryAdvance修飾子と型メソッド説明default voidforEachRemaining(IntConsumer action) すべての要素の処理が完了するかアクションから例外がスローされるまで、現在のスレッド内で残りの各要素に対して指定されたアクションをシーケンシャルに実行します。booleantryAdvance(IntConsumer action) 残りの要素が存在する場合は、その要素に対して指定されたアクションを実行してtrueを返し、それ以外の場合はfalseを返します。
-
コンストラクタの詳細
-
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(Consumer)トラバーサルによって検出される要素数の見積りを返します。または、計算するには無限、不明または高すぎる場合は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 - 実装要件:
- この実装は、作成時に報告された特性を返します。
- 戻り値:
- 特性の表現
-