Spec-Zone.ru › OpenJDK 17

Класс Spliterators.AbstractSpliterator<T>

java.lang.Object
java.util.Spliterators.AbstractSpliterator<T>
Все реализованные интерфейсы:
Spliterator<T>
Вложенный класс:
Spliterators
public abstract static class Spliterators.AbstractSpliterator<T> extends Object implements Spliterator<T>
Абстрактный Spliterator для реализации trySplit с ограниченной параллельностью.

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

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

Альтернативой использованию этого класса, также позволяющей ограниченную параллельность, является создание разделителя из итератора (см. 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
Создаёт разделитель, сообщающий об оценённом размере и дополнительных характеристиках.

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

Модификатор и тип Метод Описание
int characteristics()
Возвращает набор характеристик этого разделителя и его элементов.
long estimateSize()
Возвращает оценку количества элементов, которые будут встречены при обходе Spliterator.forEachRemaining(java.util.function.Consumer<? super T>), или возвращает Long.MAX_VALUE, если бесконечно, неизвестно или слишком дорого вычислить.
Spliterator<T> trySplit()
Если этот разделитель может быть разделен, возвращает 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)
Создаёт разделитель, сообщающий об оценённом размере и дополнительных характеристиках.
Параметры:
est - оценка размера этого разделителя, если известна, в противном случае Long.MAX_VALUE.
additionalCharacteristics - свойства источника этого разделителя или элементов. Если SIZED сообщается, то этот разделитель дополнительно сообщит SUBSIZED.

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

trySplit

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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