Module java.base
Package java.util

Class Spliterators.AbstractDoubleSpliterator

java.lang.Object
java.util.Spliterators.AbstractDoubleSpliterator
所有已实现的接口:
Spliterator<Double>, Spliterator.OfDouble, Spliterator.OfPrimitive<Double,DoubleConsumer,Spliterator.OfDouble>
封装类:
Spliterators

public abstract static class Spliterators.AbstractDoubleSpliterator extends Object implements Spliterator.OfDouble
一个抽象的Spliterator.OfDouble,实现了trySplit以允许有限的并行性。

要实现一个分割器,扩展类只需实现tryAdvance。如果扩展类可以提供更高性能的实现,则应覆盖forEachRemaining

API注释:
当不可能或难以有效地对元素进行平衡并行计算时,此类是创建分割器的有用辅助工具。

使用此类的替代方法,也允许有限的并行性,是从迭代器创建分割器(参见Spliterators.spliterator(java.util.PrimitiveIterator.OfDouble, long, int))。根据情况,使用迭代器可能比扩展此类更容易或更方便。例如,如果已经有可用的迭代器,则无需扩展此类。

自版本:
1.8
另请参阅:
  • Constructor Details

    • AbstractDoubleSpliterator

      protected AbstractDoubleSpliterator(long est, int additionalCharacteristics)
      创建一个报告给定估计大小和特征的分割器。
      参数:
      est - 如果已知,则为此分割器的估计大小,否则为Long.MAX_VALUE
      additionalCharacteristics - 此分割器的源或元素的属性。如果报告了SIZED,则此分割器还将报告SUBSIZED
  • Method Details

    • trySplit

      public Spliterator.OfDouble trySplit()
      如果此分割器可以分割,则返回覆盖元素的分割器,该分割器在从此方法返回后将不再由此分割器覆盖。

      如果此分割器是Spliterator.ORDERED,则返回的分割器必须覆盖元素的严格前缀。

      除非此分割器覆盖无限数量的元素,否则重复调用trySplit()最终必须返回null。在非null返回时:

      • 拆分前报告的estimateSize()值必须在拆分后大于或等于此分割器和返回的分割器的estimateSize()值;和
      • 如果此分割器是SUBSIZED,则拆分前此分割器的estimateSize()值必须等于拆分后此分割器和返回的分割器的estimateSize()值之和。

      此方法可能出于任何原因返回null,包括空、在遍历开始后无法拆分、数据结构约束和效率考虑。此实现允许有限的并行性。

      指定者:
      trySplit 在接口 Spliterator<Double>
      返回:
      覆盖部分元素的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<Double>
      实现要求:
      此实现返回创建时报告的估计大小,并且如果已知估计大小,则在拆分时减小。
      返回:
      估计大小,如果是无限的、未知的或计算成本太高,则返回Long.MAX_VALUE
    • characteristics

      public int characteristics()
      返回此分割器及其元素的一组特征。结果表示为来自Spliterator.ORDEREDSpliterator.DISTINCTSpliterator.SORTEDSpliterator.SIZEDSpliterator.NONNULLSpliterator.IMMUTABLESpliterator.CONCURRENTSpliterator.SUBSIZED的ORed值。在对给定分割器进行trySplit调用之前或之间的重复调用characteristics()应始终返回相同的结果。

      如果一个分割器报告了不一致的特征集(无论是从单次调用返回的还是跨多次调用返回的),则无法保证使用此分割器进行任何计算。

      指定者:
      characteristics 在接口 Spliterator<Double>
      实现要求:
      此实现返回创建时报告的特征。
      返回:
      特征的表示