Spec-Zone.ru › OpenJDK 8

Класс 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. Расширяющий класс должен переопределить forEach, если может предоставить более производительную реализацию.

Примечание 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

Конструкторы

Модификатор Конструктор и описание
protected AbstractSpliterator(long est, int additionalCharacteristics)

Создаёт спитератор, сообщающий о заданном оценочном размере и дополнительных характеристиках.

Методы

Модификатор и тип Метод и описание
int characteristics()

Возвращает набор характеристик этого Spliterator и его элементов.

long estimateSize()

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

Spliterator<T> trySplit()

Если этот спитератор может быть разбит, возвращает 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)

Создаёт спитератор, сообщающий о заданном оценочном размере и дополнительных характеристиках.

Параметры:
est - оценочный размер этого спитератора, если известен, в противном случае Long.MAX_VALUE.
additionalCharacteristics - свойства источника или элементов этого спитератора. Если SIZED указано, то спитератор дополнительно сообщит о SUBSIZED.

Методы

trySplit

public Spliterator<T> trySplit()

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

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

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

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

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

Указано в:
trySplit в интерфейсе Spliterator<T>
Возвращает:
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()

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

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

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

© 1993, 2020, 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.

Spec-Zone.ru

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