Класс Spliterators.AbstractLongSpliterator
- java.lang.Object
-
- java.util.Spliterators.AbstractLongSpliterator
- Все реализованные интерфейсы:
-
Spliterator<Long>,Spliterator.OfLong,Spliterator.OfPrimitive<Long,LongConsumer,Spliterator.OfLong>
- Вложенный класс:
- Spliterators
public abstract static class Spliterators.AbstractLongSpliterator extends Object implements Spliterator.OfLong
Абстрактный Spliterator.OfLong, реализующий trySplit для ограниченной параллельности.
Для реализации разделителя расширяющий класс должен только реализовать tryAdvance. Расширяющий класс должен переопределить forEachRemaining, если он может обеспечить более производительную реализацию.
- Примечание API:
- Этот класс является полезной помощью для создания разделителя, когда невозможно или сложно эффективно разделить элементы таким образом, чтобы допускать сбалансированное параллельное вычисление.
Альтернативой использованию этого класса, также допускающей ограниченную параллельность, является создание разделителя из итератора (см.
Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, long, int). В зависимости от обстоятельств использование итератора может быть проще или удобнее, чем расширение этого класса. Например, если уже доступен итератор, то нет необходимости расширять этот класс. - С момента:
- 1.8
- См. также:
Spliterators.spliterator(java.util.PrimitiveIterator.OfLong, 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 | AbstractLongSpliterator(long est,
int additionalCharacteristics) | Создает разделитель, сообщая об указанном предполагаемом размере и характеристиках. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | characteristics() | Возвращает набор характеристик этого разделителя и его элементов. |
long | estimateSize() | Возвращает оценку количества элементов, которые будут встречены при обходе |
Spliterator.OfLong | trySplit() | Если этот разделитель может быть разделен, возвращает Spliterator, покрывающий элементы, которые после возврата из этого метода не будут покрываться этим разделителем. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitМетоды, объявленные в интерфейсе java.util.Spliterator
getComparator, getExactSizeIfKnown, hasCharacteristicsМетоды, объявленные в интерфейсе java.util.Spliterator.OfLong
forEachRemaining, tryAdvanceМетоды, объявленные в интерфейсе java.util.Spliterator.OfPrimitive
forEachRemaining, tryAdvanceКонструкторы
AbstractLongSpliterator
protected AbstractLongSpliterator(long est,
int additionalCharacteristics)Создает разделитель, сообщая об указанном предполагаемом размере и характеристиках.
- Параметры:
-
est- предполагаемый размер этого разделителя, если известен, в противном случаеLong.MAX_VALUE. -
additionalCharacteristics- свойства источника или элементов этого разделителя. ЕслиSIZEDсообщается, то этот разделитель дополнительно сообщитSUBSIZED.
Методы
trySplit
public Spliterator.OfLong trySplit()
Если этот разделитель может быть разделен, возвращает Spliterator, покрывающий элементы, которые после возврата из этого метода не будут покрываться этим разделителем.
Если этот Spliterator Spliterator.ORDERED, возвращаемый Spliterator должен покрывать строгий префикс элементов.
Если этот Spliterator не покрывает бесконечное количество элементов, повторные вызовы trySplit() должны в конечном итоге вернуть null. При ненулевом возврате:
- значение, сообщённое для
estimateSize()до разделения, должно после разделения быть больше или равноestimateSize()для этого и возвращаемого Spliterator; и - если этот Spliterator
SUBSIZED, тоestimateSize()для этого разделителя до разделения должно быть равно суммеestimateSize()для этого и возвращаемого Spliterator после разделения.
Этот метод может вернуть null по любой причине, включая пустоту, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация допускает ограниченную параллельность.
- Задано в:
-
trySplitв интерфейсеSpliterator<Long> - Возвращает:
- 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<Long> - Требования к реализации:
- Эта реализация возвращает предполагаемый размер, как сообщается при создании, и, если предполагаемый размер известен, уменьшается при разделении.
- Возвращает:
- предполагаемый размер или
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<Long> - Требования к реализации:
- Эта реализация возвращает характеристики, как сообщается при создании.
- Возвращает:
- представление характеристик
© 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.AbstractLongSpliterator.html