Класс 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 для ограниченного параллелизма.
Для реализации разделителя расширяющему классу необходимо только реализовать Spliterator.OfDouble.tryAdvance(java.util.function.DoubleConsumer). Расширяющий класс должен переопределить Spliterator.OfDouble.forEachRemaining(java.util.function.DoubleConsumer), если он может предоставить более производительную реализацию.
- Примечание API:
- Этот класс является полезной помощью для создания разделителя, когда невозможно или сложно эффективно разделить элементы таким образом, чтобы позволить сбалансированное параллельное вычисление.
Альтернативой использованию этого класса, которая также допускает ограниченный параллелизм, является создание разделителя из итератора (см.
Spliterators.spliterator(java.util.PrimitiveIterator.OfDouble, long, int). В зависимости от обстоятельств использование итератора может быть проще или удобнее, чем расширение этого класса. Например, если уже доступен итератор, нет необходимости расширять этот класс. - С:
- 1.8
- См. также:
Spliterators.spliterator(java.util.PrimitiveIterator.OfDouble, long, int)
Вложенные классы
Вложенные классы/интерфейсы, унаследованные от интерфейса java.util.Spliterator
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
Поля
Поля, унаследованные от интерфейса java.util.Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
Краткое описание конструкторов
| Модификатор | Конструктор и описание |
|---|---|
protected |
AbstractDoubleSpliterator(long est,
int additionalCharacteristics) Создает разделитель, сообщающий о заданном предполагаемом размере и характеристиках. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
int |
characteristics() Возвращает набор характеристик этого разделителя и его элементов. |
long |
estimateSize() Возвращает оценку количества элементов, которые будут встречены при обходе |
Spliterator.OfDouble |
trySplit() Если этот разделитель может быть разбит, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода не будут охватываться этим разделителем. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, унаследованные от интерфейса java.util.Spliterator.OfDouble
forEachRemaining, forEachRemaining, tryAdvance, tryAdvance
Методы, унаследованные от интерфейса java.util.Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristics
Подробное описание конструкторов
AbstractDoubleSpliterator
protected AbstractDoubleSpliterator(long est,
int additionalCharacteristics)
Создает разделитель, сообщающий о заданном предполагаемом размере и характеристиках.
- Параметры:
-
est- предполагаемый размер этого разделителя, если известен, в противном случаеLong.MAX_VALUE. -
additionalCharacteristics- свойства источника этого разделителя или элементов. ЕслиSIZEDуказан, этот разделитель будет дополнительно указыватьSUBSIZED.
Подробное описание методов
trySplit
public Spliterator.OfDouble trySplit()
Если этот разделитель может быть разбит, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода не будут охватываться этим разделителем.
Если этот Spliterator Spliterator.ORDERED, возвращаемый Spliterator должен охватывать строгое начало элементов.
Если этот Spliterator не охватывает бесконечное количество элементов, повторные вызовы trySplit() должны в конечном итоге вернуть null. При ненулевом возвращении:
- значение, указанное для
estimateSize()до разделения, должно после разделения быть больше или равноestimateSize()для этого и возвращаемого Spliterator; и - если этот Spliterator
SUBSIZED, тоestimateSize()для этого разделителя до разделения должен быть равен суммеestimateSize()для этого и возвращаемого Spliterator после разделения.
Этот метод может вернуть null по любой причине, включая пустоту, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация допускает ограниченный параллелизм.
- Задано:
-
trySplitв интерфейсеSpliterator<Double> - Задано:
-
trySplitв интерфейсеSpliterator.OfDouble - Задано:
-
trySplitв интерфейсеSpliterator.OfPrimitive<Double,DoubleConsumer,Spliterator.OfDouble> - Возвращает:
- Spliterator, охватывающий часть элементов, или
null, если этот разделитель не может быть разделен
estimateSize
public long estimateSize()
Возвращает оценку количества элементов, которые будут встречены при обходе Spliterator.forEachRemaining(java.util.function.Consumer<? super T>), или возвращает Long.MAX_VALUE, если бесконечно, неизвестно или слишком дорого вычисляется.
Если этот Spliterator Spliterator.SIZED и не был частично пройден или разделен, или этот Spliterator Spliterator.SUBSIZED и не был частично пройден, эта оценка должна быть точным подсчётом элементов, которые будут встречены при полном обходе. В противном случае эта оценка может быть произвольно неточной, но должна уменьшаться, как указано при вызовах Spliterator.trySplit().
- Задано:
-
estimateSizeв интерфейсеSpliterator<Double> - Требования к реализации:
- Эта реализация возвращает предполагаемый размер, как указано при создании, и, если размер известен, уменьшается при разделении.
- Возвращает:
- предполагаемый размер, или
Long.MAX_VALUEесли бесконечно, неизвестно или слишком дорого вычисляется.
characteristics
public int characteristics()
Возвращает набор характеристик этого разделителя и его элементов. Результат представлен как побитовые ИЛИ значений из Spliterator.ORDERED, Spliterator.DISTINCT, Spliterator.SORTED, Spliterator.SIZED, Spliterator.NONNULL, Spliterator.IMMUTABLE, Spliterator.CONCURRENT, Spliterator.SUBSIZED. Повторные вызовы characteristics() для данного разделителя до или между вызовами trySplit всегда должны возвращать один и тот же результат.
Если разделитель сообщает о несогласованном наборе характеристик (либо полученном из одного вызова, либо из нескольких вызовов), гарантий о любых вычислениях, использующих этот разделитель, не может быть.
- Задано:
-
characteristicsв интерфейсеSpliterator<Double> - Требования к реализации:
- Эта реализация возвращает характеристики, как указано при создании.
- Возвращает:
- представление характеристик
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.