Spec-Zone.ru › OpenJDK 25

Класс Spliterators.AbstractSpliterator<T>

java.lang.Object
java.util.Spliterators.AbstractSpliterator<T>
Параметры типа:
T — тип элементов, возвращаемых этим Spliterator
Все реализуемые интерфейсы:
Spliterator<T>
Внешний класс:
Spliterators
public abstract static class Spliterators.AbstractSpliterator<T> extends Object implements Spliterator<T>
Абстрактный Spliterator, реализующий trySplit для обеспечения ограниченного параллелизма.

Расширяющему класс достаточно реализовать tryAdvance. Расширяющему классу следует переопределить forEachRemaining, если он может предоставить более производительную реализацию.

Примечание API:
Этот класс полезен при создании spliterator, когда эффективно разделить элементы таким образом, чтобы обеспечить сбалансированные параллельные вычисления, невозможно или затруднительно.

Альтернативой использованию этого класса, которая также обеспечивает ограниченный параллелизм, является создание spliterator из итератора (см. Spliterators.spliterator(Iterator, long, int). В зависимости от обстоятельств использование итератора может быть проще или удобнее, чем расширение этого класса, например, если уже имеется подходящий итератор.

С версии:
1.8
См. также:
  • Spliterators.spliterator(Iterator, 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

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

AbstractSpliterator(long est, int additionalCharacteristics)
Модификатор Конструктор Описание
protected
Создает spliterator, сообщающий заданную оценку размера и дополнительные характеристики.

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

Модификатор и тип Метод Описание
int characteristics()
Возвращает набор характеристик этого Spliterator и его элементов.
long estimateSize()
Возвращает оценку количества элементов, которые будут обработаны при обходе Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно.
Spliterator<T> trySplit()
Если этот spliterator можно разделить, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться данным Spliterator.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

forEachRemaining, getComparator, getExactSizeIfKnown, hasCharacteristics, tryAdvance

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

AbstractSpliterator

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

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

trySplit

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

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

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

  • значение, сообщенное для estimateSize() до разделения, после разделения должно быть больше или равно estimateSize() для этого Spliterator и возвращенного Spliterator; и
  • если этот Spliterator имеет характеристику SUBSIZED, то значение estimateSize() для этого spliterator до разделения должно быть равно сумме значений estimateSize() для этого Spliterator и возвращенного Spliterator после разделения.

Этот метод может вернуть null по любой причине, включая отсутствие элементов, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация обеспечивает ограниченный параллелизм.

Определено в:
trySplit в интерфейсе Spliterator<T>
Возвращает:
Spliterator, охватывающий часть элементов, или null, если этот spliterator нельзя разделить

estimateSize

public long estimateSize()
Возвращает оценку количества элементов, которые будут обработаны при обходе Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно.

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

Определено в:
estimateSize в интерфейсе Spliterator<T>
Требования к реализации:
Эта реализация возвращает оценку размера, заданную при создании, и, если она известна, уменьшает ее при разделении.
Возвращает:
оценка размера или Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно.

characteristics

public int characteristics()
Возвращает набор характеристик этого Spliterator и его элементов. Результат представлен как побитовое ИЛИ значений Spliterator.ORDERED, Spliterator.DISTINCT, Spliterator.SORTED, Spliterator.SIZED, Spliterator.NONNULL, Spliterator.IMMUTABLE, Spliterator.CONCURRENT, Spliterator.SUBSIZED. Повторные вызовы characteristics() для данного spliterator до вызовов trySplit или между ними всегда должны возвращать один и тот же результат.

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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.AbstractSpliterator.html

Spec-Zone.ru

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