- java.lang.Object
-
- java.util.Spliterators.AbstractLongSpliterator
-
- 实现的所有接口
-
Spliterator<Long>
,Spliterator.OfLong
,Spliterator.OfPrimitive<Long,LongConsumer,Spliterator.OfLong>
- Enclosing class:
- Spliterators
public abstract static class Spliterators.AbstractLongSpliterator extends Object implements Spliterator.OfLong
一个抽象的Spliterator.OfLong
,它实现了trySplit
以允许有限的并行性。要实现spliterator,扩展类只需要实现
tryAdvance
。 如果扩展类可以提供更高性能的实现,则应该覆盖forEachRemaining
。- API Note:
-
当不可能或难以以允许平衡并行计算的方式有效地分区元素时,该类对于创建分裂器是有用的辅助。
使用此类也允许有限并行性的另一种方法是从迭代器创建一个spliterator(参见
Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int)
。根据使用迭代器的情况,可能比扩展此类更容易或更方便。例如,如果已经存在一个可以使用的迭代器,那么就不需要扩展这个类了。 - 从以下版本开始:
- 1.8
- 另请参见:
-
Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int)
-
-
嵌套类汇总
-
Nested classes/interfaces declared in interface java.util.Spliterator
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
-
-
字段汇总
-
Fields declared in interface java.util.Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
AbstractLongSpliterator(long est, int additionalCharacteristics)
创建报告给定估计大小和特征的分裂器。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 int
characteristics()
返回此Spliterator及其元素的一组特征。long
estimateSize()
返回Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)
遍历将遇到的元素数量的估计值,如果无限,未知或计算成本太高,则返回Long.MAX_VALUE
。Spliterator.OfLong
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.OfLong
forEachRemaining, tryAdvance
-
声明方法的接口 java.util.Spliterator.OfPrimitive
forEachRemaining, tryAdvance
-
-
-
-
方法详细信息
-
trySplit
public Spliterator.OfLong trySplit()
如果可以对此spliterator进行分区,则返回Spliterator覆盖元素,这些元素在从此方法返回时将不被此Spliterator覆盖。如果此Spliterator为
Spliterator.ORDERED
,则返回的Spliterator必须覆盖元素的严格前缀。除非此Spliterator包含无限数量的元素,否则重复调用
trySplit()
最终必须返回null
。 在非null返回时:-
estimateSize()
前报告的值为estimateSize()
,拆分后必须大于等于estimateSize()
和返回的Spliterator; 和 - 如果此Spliterator为
SUBSIZED
,则estimateSize()
前的此拆分器的estimateSize()必须等estimateSize()
为estimateSize()
和拆分后返回的Spliterator的总和。
该方法可以出于任何原因返回
null
,包括null
,在遍历开始后无法拆分,数据结构约束和效率考虑。 该实现允许有限的并行性。- Specified by:
-
trySplit
接口Spliterator<Long>
- 结果
-
一个
Spliterator
覆盖所述元件的一些部分,或者null
如果此spliterator不能拆分
-
-
estimateSize
public long estimateSize()
返回Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)
遍历将遇到的元素数量的估计值,如果无限,未知或计算成本太高,则返回Long.MAX_VALUE
。如果此Spliterator为
Spliterator.SIZED
且尚未部分遍历或拆分,或者此Spliterator为Spliterator.SUBSIZED
且尚未部分遍历,则此估计值必须是完整遍历将遇到的元素的准确计数。 否则,此估计可能是任意不准确的,但必须按照Spliterator.trySplit()
的调用指定的方式减少 。- Specified by:
-
estimateSize
在接口Spliterator<Long>
- 实现要求:
- 此实现返回创建时报告的估计大小,如果已知估计大小,则在拆分时减小大小。
- 结果
-
估计的大小,或
Long.MAX_VALUE
如果计算无限,未知或太昂贵。
-
characteristics
public int characteristics()
返回此Spliterator及其元素的一组特征。 结果从表示为或运算值Spliterator.ORDERED
,Spliterator.DISTINCT
,Spliterator.SORTED
,Spliterator.SIZED
,Spliterator.NONNULL
,Spliterator.IMMUTABLE
,Spliterator.CONCURRENT
,Spliterator.SUBSIZED
。 反复拨打characteristics()
在给定的spliterator之前或在两者之间的调用,trySplit
,应始终返回相同的结果。如果Spliterator报告一组不一致的特征(从单个调用或多个调用返回的特征),则无法保证使用此Spliterator进行任何计算。
- Specified by:
-
characteristics
在界面Spliterator<Long>
- 实现要求:
- 此实现返回创建时报告的特征。
- 结果
- 表征特征
-
-