Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе Spliterator
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>
Краткое описание полей
Поля, объявленные в интерфейсе Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает сплитератор, сообщающий заданные предполагаемый размер и характеристики. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого сплитератора и его элементов. |
long |
estimateSize() |
Возвращает оценку количества элементов, которые будут обнаружены при обходе с помощью Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно. |
Spliterator.OfDouble |
trySplit() |
Если этот сплитератор можно разделить, возвращает сплитератор, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться данным сплитератором. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristics
Методы, объявленные в интерфейсе Spliterator.OfDouble
forEachRemaining, tryAdvance
Методы, объявленные в интерфейсе Spliterator.OfPrimitive
forEachRemaining, tryAdvance
Подробное описание конструкторов
AbstractDoubleSpliterator
protected AbstractDoubleSpliterator(long est, int additionalCharacteristics)
- Параметры:
-
est— предполагаемый размер этого сплитератора, если он известен, иначеLong.MAX_VALUE. -
additionalCharacteristics— свойства источника или элементов этого сплитератора. Если сообщаетсяSIZED, этот сплитератор дополнительно сообщаетSUBSIZED.
Подробное описание методов
trySplit
public Spliterator.OfDouble trySplit()
Если этот сплитератор является Spliterator.ORDERED, возвращаемый сплитератор должен охватывать строгий префикс элементов.
Если этот сплитератор не охватывает бесконечное число элементов, повторные вызовы trySplit() должны в конечном итоге вернуть null. При возврате ненулевого значения:
- значение, сообщаемое для
estimateSize()до разделения, после разделения должно быть больше или равноestimateSize()для этого сплитератора и возвращенного сплитератора; и - если этот сплитератор является
SUBSIZED, то значениеestimateSize()для этого сплитератора до разделения должно быть равно суммеestimateSize()для этого сплитератора и возвращенного сплитератора после разделения.
Этот метод может возвращать null по любой причине, включая отсутствие элементов, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация обеспечивает ограниченный параллелизм.
- Определено в:
-
trySplitв интерфейсеSpliterator<Double> - Возвращает:
Spliterator, охватывающий часть элементов, илиnull, если этот сплитератор нельзя разделить
estimateSize
public long estimateSize()
Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно. Если этот сплитератор имеет характеристику Spliterator.SIZED и обход или разделение еще не выполнялись частично либо этот сплитератор имеет характеристику 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Spliterators.AbstractDoubleSpliterator.html