Spec-Zone.ru › OpenJDK 25

Класс 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)

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в интерфейсе Spliterator

Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>

Краткое описание полей

Поля, объявленные в интерфейсе Spliterator

CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED

Краткое описание конструкторов

AbstractIntSpliterator(long est, int additionalCharacteristics)
Модификатор Конструктор Описание
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

Методы, объявленные в интерфейсе Spliterator

getComparator, getExactSizeIfKnown, hasCharacteristics

Методы, объявленные в интерфейсе Spliterator.OfInt

forEachRemaining, tryAdvance

Методы, объявленные в интерфейсе Spliterator.OfPrimitive

forEachRemaining, tryAdvance

Подробное описание конструкторов

AbstractIntSpliterator

protected AbstractIntSpliterator(long est, int additionalCharacteristics)
Создает сплитератор, сообщающий указанную оценку размера и характеристики.
Параметры:
est — оценка размера этого сплитератора, если он известен, иначе Long.MAX_VALUE.
additionalCharacteristics — свойства источника или элементов этого сплитератора. Если сообщается SIZED, этот сплитератор дополнительно будет сообщать SUBSIZED.

Подробное описание методов

trySplit

public Spliterator.OfInt trySplit()
Если этот сплитератор можно разделить, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться этим Spliterator.

Если этот Spliterator является Spliterator.ORDERED, возвращенный Spliterator должен охватывать строгий префикс элементов.

Если этот Spliterator не охватывает бесконечное число элементов, повторные вызовы trySplit() должны в конечном итоге возвращать null. При возврате ненулевого значения:

  • значение, сообщаемое для estimateSize() до разделения, после разделения должно быть больше или равно estimateSize() для этого и возвращенного 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 и его элементов. Результат представлен в виде объединенных операцией OR значений из Spliterator.ORDERED, Spliterator.DISTINCT, Spliterator.SORTED, Spliterator.SIZED, Spliterator.NONNULL, Spliterator.IMMUTABLE, Spliterator.CONCURRENT, Spliterator.SUBSIZED. Повторные вызовы characteristics() для данного сплитератора до или между вызовами trySplit всегда должны возвращать один и тот же результат.

Если Spliterator сообщает о противоречивом наборе характеристик (в рамках одного вызова или при нескольких вызовах), никаких гарантий относительно вычислений с использованием этого Spliterator дать нельзя.

Указано в:
characteristics в интерфейсе Spliterator<Integer>
Требования к реализации:
Эта реализация возвращает характеристики, указанные при создании.
Возвращает:
представление характеристик

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.AbstractIntSpliterator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API