java.lang.Object
java.util.Spliterators.AbstractIntSpliterator
- 所有已实现的接口:
-
Spliterator<Integer>
,Spliterator.OfInt
,Spliterator.OfPrimitive<Integer,
IntConsumer, Spliterator.OfInt>
- 封装类:
-
Spliterators
public abstract static class Spliterators.AbstractIntSpliterator extends Object implements Spliterator.OfInt
一个抽象的
Spliterator.OfInt
,实现trySplit
以允许有限的并行性。
要实现一个分割器,扩展类只需实现tryAdvance
。如果扩展类可以提供更高性能的实现,则应覆盖forEachRemaining
。
- API注释:
-
当不可能或难以有效地对元素进行平衡并行计算时,此类是创建分割器的有用辅助工具。
使用此类的替代方法,也允许有限的并行性,是从迭代器创建分割器(参见
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, long, int)
)。根据情况,使用迭代器可能比扩展此类更容易或更方便。例如,如果已经有可用的迭代器,则无需扩展此类。 - 自版本:
- 1.8
- 参见:
-
Nested Class Summary
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>> -
Field Summary
Fields declared in interface java.util.Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractIntSpliterator
(long est, int additionalCharacteristics) 创建一个报告给定估计大小和特性的分割器。 -
Method Summary
Modifier and TypeMethodDescriptionint
返回此分割器及其元素的一组特性。long
返回通过Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)
遍历时将遇到的元素数量的估计值,如果是无限的、未知的或计算成本太高,则返回Long.MAX_VALUE
。trySplit()
如果此分割器可以分割,则返回覆盖元素的分割器,该分割器在从此方法返回后将不再由此分割器覆盖。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface java.util.Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristics
Methods declared in interface java.util.Spliterator.OfInt
forEachRemaining, tryAdvance
Methods declared in interface java.util.Spliterator.OfPrimitive
forEachRemaining, tryAdvance
-
Constructor Details
-
AbstractIntSpliterator
protected AbstractIntSpliterator(long est, int additionalCharacteristics) 创建一个报告给定估计大小和特性的分割器。- 参数:
-
est
- 如果已知,则为此分割器的估计大小,否则为Long.MAX_VALUE
。 -
additionalCharacteristics
- 此分割器的源或元素的属性。如果报告了SIZED
,则此分割器还将报告SUBSIZED
。
-
-
Method Details
-
trySplit
如果此分割器可以分割,则返回覆盖元素的分割器,该分割器在从此方法返回后将不再由此分割器覆盖。如果此分割器是
Spliterator.ORDERED
,则返回的分割器必须覆盖元素的严格前缀。除非此分割器覆盖无限数量的元素,否则重复调用
trySplit()
最终必须返回null
。在非null返回时:- 拆分之前报告的
estimateSize()
的值,在拆分后,必须大于或等于此分割器和返回的分割器的estimateSize()
;和 - 如果此分割器是
SUBSIZED
,则拆分之前此分割器的estimateSize()
必须等于拆分后此分割器和返回的分割器的estimateSize()
之和。
此方法可能出于任何原因返回
null
,包括空、在遍历开始后无法拆分、数据结构约束和效率考虑。此实现允许有限的并行性。- 指定者:
-
trySplit
在接口Spliterator<Integer>
- 返回:
-
覆盖部分元素的
Spliterator
,如果此分割器无法拆分,则返回null
- 拆分之前报告的
-
estimateSize
public long estimateSize()返回通过Spliterator.forEachRemaining(java.util.function.Consumer<? super T>)
遍历时将遇到的元素数量的估计值,如果是无限的、未知的或计算成本太高,则返回Long.MAX_VALUE
。如果此分割器是
Spliterator.SIZED
且尚未部分遍历或拆分,或此分割器是Spliterator.SUBSIZED
且尚未部分遍历,则此估计必须是完整遍历时遇到的元素数量的准确计数。否则,此估计可能是任意不准确的,但必须按照Spliterator.trySplit()
的调用规定递减。- 指定者:
-
estimateSize
在接口Spliterator<Integer>
- 实现要求:
- 此实现返回创建时报告的估计大小,并且如果已知估计大小,则在拆分时减小。
- 返回:
-
估计大小,如果是无限的、未知的或计算成本太高,则返回
Long.MAX_VALUE
。
-
characteristics
public int characteristics()返回此分割器及其元素的一组特性。结果表示为来自Spliterator.ORDERED
、Spliterator.DISTINCT
、Spliterator.SORTED
、Spliterator.SIZED
、Spliterator.NONNULL
、Spliterator.IMMUTABLE
、Spliterator.CONCURRENT
、Spliterator.SUBSIZED
的ORed值。在对给定分割器进行trySplit
调用之前或之间的重复调用characteristics()
应始终返回相同的结果。如果一个分割器报告了一组不一致的特性(无论是从单次调用返回的还是跨多次调用返回的),则不能保证使用此分割器进行任何计算。
- 指定者:
-
characteristics
在接口Spliterator<Integer>
- 实现要求:
- 此实现返回创建时报告的特性。
- 返回:
- 特性的表示
-