public abstract static class Spliterators.AbstractLongSpliterator extends Object implements Spliterator.OfLong
trySplit
を実装する抽象Spliterator.OfLong
です。
スプリッテレータを実装するために、拡張するクラスで実装する必要があるのは、Spliterator.OfLong.tryAdvance(java.util.function.LongConsumer)
tryAdvance}だけです。拡張するクラスでは、より高パフォーマンスな実装を提供できる場合にはSpliterator.OfLong.forEachRemaining(java.util.function.LongConsumer)
forEach}をオーバーライドするようにしてください。
制限付きの並列処理を許可するもう1つの方法として、このクラスを使用するかわりに、イテレータからスプリッテレータを作成することもできます(Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int)
を参照)。状況によっては、このクラスを拡張するよりもイテレータを使用する方が簡単または好都合な場合があります。たとえば、使用可能なイテレータがすでにある場合、このクラスを拡張する必要はありません。
Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int)
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
修飾子 | コンストラクタと説明 |
---|---|
protected |
AbstractLongSpliterator(long est, int additionalCharacteristics)
指定された推定サイズおよび特性を報告するスプリッテレータを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
int |
characteristics()
このスプリッテレータおよびその要素の、一連の特性を返します。
|
long |
estimateSize()
Spliterator.forEachRemaining(java.util.function.Consumer<? super T>) のトラバースで検出される要素数の推定値を返します。無限大または不明の場合、あるいはコストが高すぎて計算できない場合は、Long.MAX_VALUE を返します。 |
Spliterator.OfLong |
trySplit()
このspliteratorをパーティション化できる場合に、要素に適用されるSpliteratorを返します。このメソッドから戻ると同時に、それらの要素にはこのSpliteratorが適用されなくなります。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining, forEachRemaining, tryAdvance, tryAdvance
getComparator, getExactSizeIfKnown, hasCharacteristics
protected AbstractLongSpliterator(long est, int additionalCharacteristics)
est
- 既知の場合はこのスプリッテレータの推定サイズ。そうでない場合はLong.MAX_VALUE
。additionalCharacteristics
- このスプリッテレータのソースまたは要素の特性。SIZED
を報告する場合、このスプリッテレータはSUBSIZED
も追加で報告します。public Spliterator.OfLong trySplit()
このスプリッテレータがSpliterator.ORDERED
である場合、返されるスプリッテレータは要素の厳密な接頭辞をカバーする必要があります。
このスプリッテレータが無限の要素数をカバーする場合を除き、繰り返しtrySplit()
を呼び出すと、最終的にはnull
が返されるはずです。null以外が返されたときは次のようになります。
estimateSize()
で報告される値は、分割後のこのスプリッテレータおよび返されたスプリッテレータのestimateSize()
と等しいかそれより大きくなければなりません。さらに、SUBSIZED
である場合、分割前のこのスプリッテレータのestimateSize()
は、分割後のこのスプリッテレータおよび返されたスプリッテレータのestimateSize()
の合計と等しくなければなりません。このメソッドはなんらかの理由でnull
を返す場合があります(空であるため、トラバース開始後に分割できないため、データ構造の制約のため、効率上の考慮事項のためなど)。この実装では、制限付きの並列処理が許可されます。
Spliterator<Long>
のtrySplit
Spliterator.OfLong
のtrySplit
Spliterator.OfPrimitive<Long,LongConsumer,Spliterator.OfLong>
のtrySplit
Spliterator
。このスプリッテレータを分割できない場合はnull
public long estimateSize()
Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)
のトラバースで検出される要素数の推定値を返します。無限大または不明の場合、あるいはコストが高すぎて計算できない場合は、Long.MAX_VALUE
を返します。
このスプリッテレータがSpliterator.SIZED
であり、まだ部分的にトラバースまたは分割されていない場合、あるいは、このスプリッテレータがSpliterator.SUBSIZED
であり、まだ部分的にトラバースされていない場合、この推定値は完全なトラバースで検出される要素数の正確なカウントでなければなりません。それ以外の場合、この推定値は任意の不正確な値でかまいませんが、Spliterator.trySplit()
の呼出しにわたって、指定されたとおりに減少する必要があります。
Spliterator<Long>
のestimateSize
Long.MAX_VALUE
。public int characteristics()
Spliterator.ORDERED
、Spliterator.DISTINCT
、Spliterator.SORTED
、Spliterator.SIZED
、Spliterator.NONNULL
、Spliterator.IMMUTABLE
、Spliterator.CONCURRENT
、Spliterator.SUBSIZED
の値の論理和で表されます。trySplit
の呼出しの前または呼出しと呼出しの間に、1つのスプリッテレータに対して繰り返しcharacteristics()
を呼び出すと、常に同じ結果が返されるはずです。
スプリッテレータが一貫性のない特性セット(1つの呼出しから返されたものか、複数の呼出しから返されたもの)を報告する場合、このスプリッテレータを使用した計算については何も保証できません。
Spliterator<Long>
のcharacteristics
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.