Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе Spliterator
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T, T_CONS, T_SPLITR> | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
Spliterator.OfDouble |
Специализированный Spliterator для значений типа double. |
static interface |
Spliterator.OfInt |
Специализированный Spliterator для значений типа int. |
static interface |
Spliterator.OfLong |
Специализированный Spliterator для значений типа long. |
static interface |
Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T, |
Spliterator, специализированный для примитивных значений. |
Краткое описание полей
Поля, объявленные в интерфейсе Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CONCURRENT |
Значение характеристики, означающее, что источник элементов можно безопасно изменять одновременно (добавлять, заменять и/или удалять элементы) в нескольких потоках без внешней синхронизации. |
static final int |
DISTINCT |
Значение характеристики, означающее, что для каждой пары встреченных элементов x, y, !x.equals(y). |
static final int |
IMMUTABLE |
Значение характеристики, означающее, что структуру источника элементов нельзя изменять: элементы нельзя добавлять, заменять или удалять, поэтому такие изменения не могут происходить во время обхода. |
static final int |
NONNULL |
Значение характеристики, означающее, что источник гарантирует, что встреченные элементы не будут null. |
static final int |
ORDERED |
Значение характеристики, означающее, что для элементов определен порядок обхода. |
static final int |
SIZED |
Значение характеристики, означающее, что значение, возвращаемое методом estimateSize() до обхода или разделения, представляет конечный размер и, если структура источника не изменяется, точно соответствует количеству элементов, которые будут обнаружены при полном обходе. |
static final int |
SORTED |
Значение характеристики, означающее, что порядок обхода соответствует заданному порядку сортировки. |
static final int |
SUBSIZED |
Значение характеристики, означающее, что все Spliterator, полученные в результате вызова trySplit(), будут иметь характеристики Spliterator.SIZED и Spliterator.SUBSIZED. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает сплитератор, сообщающий заданные оценочный размер и характеристики. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого Spliterator и его элементов. |
long |
estimateSize() |
Возвращает оценочное количество элементов, которые будут обнаружены при обходе Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно. |
Spliterator.OfInt |
trySplit() |
Если этот сплитератор можно разделить, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться этим Spliterator. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и планируется к удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или возникновения прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или возникновения прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или возникновения прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristics | Модификатор и тип | Метод | Описание |
|---|---|---|
default Comparator |
getComparator() |
Если источник этого Spliterator отсортирован по Spliterator.SORTED с помощью Comparator, возвращает этот Comparator. |
default long |
getExactSizeIfKnown() |
Удобный метод: возвращает Spliterator.estimateSize(), если этот Spliterator имеет характеристику Spliterator.SIZED, иначе возвращает -1. |
default boolean |
hasCharacteristics |
Возвращает true, если Spliterator.characteristics() этого Spliterator содержит все заданные характеристики. |
Методы, объявленные в интерфейсе Spliterator.OfInt
forEachRemaining, tryAdvance | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEachRemaining |
Выполняет заданное действие для каждого оставшегося элемента последовательно в текущем потоке, пока не будут обработаны все элементы или действие не вызовет исключение. |
default boolean |
tryAdvance |
Если остался хотя бы один элемент, выполняет над ним заданное действие и возвращает true; в противном случае возвращает false. |
Методы, объявленные в интерфейсе Spliterator.OfPrimitive
forEachRemaining, tryAdvance | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEachRemaining |
Выполняет заданное действие для каждого оставшегося элемента последовательно в текущем потоке, пока не будут обработаны все элементы или действие не вызовет исключение. |
boolean |
tryAdvance |
Если остался хотя бы один элемент, выполняет над ним заданное действие и возвращает true; в противном случае возвращает false. |
Подробное описание конструкторов
AbstractIntSpliterator
protected AbstractIntSpliterator(long est, int additionalCharacteristics)
- Параметры:
-
est— оценочный размер этого сплитератора, если он известен; иначеLong.MAX_VALUE. -
additionalCharacteristics— свойства источника или элементов этого сплитератора. Если указана характеристикаSIZED, этот сплитератор также будет сообщатьSUBSIZED.
Подробное описание методов
trySplit
public Spliterator.OfInt trySplit()
Если у этого Spliterator есть характеристика Spliterator.ORDERED, возвращенный Spliterator должен охватывать строгий начальный фрагмент элементов.
Если этот Spliterator охватывает не бесконечное число элементов, повторные вызовы trySplit() в конечном итоге должны возвращать null. При возврате ненулевого значения:
- значение, сообщаемое методом
estimateSize()до разделения, после разделения должно быть больше или равноestimateSize()для этого Spliterator и возвращенного Spliterator; и - если этот Spliterator имеет характеристику
SUBSIZED, то значениеestimateSize()для этого сплитератора до разделения должно быть равно сумме значенийestimateSize()для этого и возвращенного Spliterator после разделения.
Этот метод может вернуть null по любой причине, включая отсутствие элементов, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация обеспечивает ограниченный параллелизм.
- Определено в:
-
trySplitв интерфейсеSpliterator<Integer> - Возвращает:
Spliterator, охватывающий часть элементов, илиnull, если этот сплитератор нельзя разделить
estimateSize
public long estimateSize()
Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно. Если этот Spliterator имеет характеристику Spliterator.SIZED и еще не был частично обойден или разделен либо если этот Spliterator имеет характеристику 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 всегда должны возвращать один и тот же результат. Если Spliterator сообщает противоречивый набор характеристик (в рамках одного вызова или при нескольких вызовах), гарантии для вычислений с использованием этого Spliterator не предоставляются.
- Определено в:
-
characteristicsв интерфейсеSpliterator<Integer> - Требования к реализации:
- Эта реализация возвращает характеристики, указанные при создании.
- Возвращает:
- представление характеристик
© 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.