Spec-Zone.ru › OpenJDK 24

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

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

Вложенные классы/интерфейсы, объявленные в интерфейсе 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

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

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

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

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

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

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

Методы, объявленные в интерфейсе java.util.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 является SUBSIZED, то estimateSize() для этого spliterator до разделения должно быть равно сумме estimateSize() для этого и возвращаемого Spliterator после разделения.

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

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

estimateSize

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

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

Определено в:
estimateSize в интерфейсе Spliterator<T>
Требования к реализации:
Эта реализация возвращает оцененный размер, как сообщается при создании, и, если размер оценки известен, уменьшается при разделении.
Возвращает:
оцененный размер, или 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() для данного spliterator до или между вызовами trySplit должны всегда возвращать один и тот же результат.

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Spliterators.AbstractSpliterator.html

Spec-Zone.ru

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