Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе 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 |
Создаёт разделитель, сообщая о заданном предполагаемом размере и характеристиках. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого разделителя и его элементов. |
long |
estimateSize() |
Возвращает оценку количества элементов, которые будут встречены в ходе обхода с помощью Spliterator.forEachRemaining(java.util.function.Consumer<? super T>), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или слишком дорого вычисляется. |
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, 2021, 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/17/docs/api/java.base/java/util/Spliterators.AbstractIntSpliterator.html