Класс Spliterators.AbstractIntSpliterator
- 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
- См. также:
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, 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 |
AbstractIntSpliterator(long est,
int additionalCharacteristics) |
Создает разделитель, сообщая о заданном предполагаемом размере и характеристиках. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого разделителя и его элементов. |
long |
estimateSize() |
Возвращает оценку количества элементов, которые будут встречены при обходе |
Spliterator.OfInt |
trySplit() |
Если этот разделитель может быть разбит, возвращает разделитель, охватывающий элементы, которые, по возвращении из этого метода, не будут охватываться этим разделителем. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristics
Методы, объявленные в интерфейсе java.util.Spliterator.OfInt
forEachRemaining, tryAdvance
Методы, объявленные в интерфейсе java.util.Spliterator.OfPrimitive
forEachRemaining, tryAdvance
Подробное описание конструкторов
AbstractIntSpliterator
protected AbstractIntSpliterator(long est,
int additionalCharacteristics)
Создает разделитель, сообщая о заданном предполагаемом размере и характеристиках.
- Параметры:
-
est- предполагаемый размер этого разделителя, если известен, в противном случаеLong.MAX_VALUE. -
additionalCharacteristics- свойства источника этого разделителя или элементов. ЕслиSIZEDсообщается, этот разделитель будет дополнительно сообщатьSUBSIZED.
Подробное описание методов
trySplit
public Spliterator.OfInt trySplit()
Если этот разделитель может быть разбит, возвращает разделитель, охватывающий элементы, которые, по возвращении из этого метода, не будут охватываться этим разделителем.
Если этот разделитель Spliterator.ORDERED, возвращаемый разделитель должен охватывать строгий префикс элементов.
Если этот разделитель не охватывает бесконечное количество элементов, повторные вызовы trySplit() должны в конечном итоге вернуть 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. Повторные вызовы characteristics() для данного разделителя до или между вызовами trySplit должны всегда возвращать один и тот же результат.
Если разделитель сообщает о несогласованном наборе характеристик (либо возвращаемых от одного вызова, либо между вызовами), никакие гарантии не могут быть даны относительно любого вычисления, использующего этот разделитель.
- Определено в:
-
characteristicsв интерфейсеSpliterator<Integer> - Требования к реализации:
- Эта реализация возвращает характеристики, как сообщается при создании.
- Возвращает:
- представление характеристик
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Spliterators.AbstractIntSpliterator.html