Класс 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Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AbstractSpliterator(long est,
int additionalCharacteristics) | Создает разделитель, сообщающий о заданном оценочном размере и дополнительных характеристиках. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | characteristics() | Возвращает набор характеристик этого разделителя и его элементов. |
long | estimateSize() | Возвращает оценку количества элементов, которые будут встречены при обходе |
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. При ненулевом возврате:
- значение, указанное для
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, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Spliterators.AbstractSpliterator.html