Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе 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 |
Создает разделитель, сообщая об указанном оценочном размере и характеристиках. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого разделителя и его элементов. |
long |
estimateSize() |
Возвращает оценку количества элементов, которые будут встречены при проходе с помощью Spliterator.forEachRemaining(java.util.function.Consumer<? super T>), или возвращает Long.MAX_VALUE, если бесконечно, неизвестно или слишком дорого для вычисления. |
Spliterator.OfLong |
trySplit() |
Если этот разделитель может быть разделен, возвращает разделитель, охватывающий элементы, которые после возврата из этого метода не будут охвачены этим разделителем. |
Методы, объявленные в классе 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.ORDERED, возвращаемый разделитель должен охватывать строгий префикс элементов.
Если этот разделитель не охватывает бесконечное число элементов, повторные вызовы trySplit() должны в конечном итоге вернуть null. После ненулевого возврата:
- значение, указанное для
estimateSize()до разделения, должно после разделения быть больше или равноestimateSize()для этого и возвращаемого разделителя; и - если этот разделитель
SUBSIZED, тоestimateSize()для этого разделителя до разделения должно быть равно суммеestimateSize()для этого и возвращаемого разделителя после разделения.
Этот метод может возвращать null по любой причине, включая пустоту, невозможность разделения после начала обхода, ограничения структуры данных и соображения эффективности. Эта реализация разрешает ограниченное распараллеливание.
- Указано в:
-
trySplitв интерфейсеSpliterator<Long> - Возвращает:
- разделитель
Spliterator, охватывающий часть элементов, илиnullесли этот разделитель не может быть разделен
estimateSize
public long estimateSize()
Spliterator.forEachRemaining(java.util.function.Consumer<? super T>), или возвращает Long.MAX_VALUE, если бесконечно, неизвестно или слишком дорого для вычисления. Если этот разделитель Spliterator.SIZED и еще не был частично пройден или разделен, или этот разделитель Spliterator.SUBSIZED и еще не был частично пройден, эта оценка должна быть точным подсчетом элементов, которые будут встречены при полном проходе. В противном случае эта оценка может быть произвольно неточной, но должна уменьшаться как указано при вызовах Spliterator.trySplit().
- Указано в:
-
estimateSizeв интерфейсеSpliterator<Long> - Требования к реализации:
- Эта реализация возвращает оценочный размер, как указано при создании, и, если размер оценки известен, уменьшается при разделении.
- Возвращает:
- оценочный размер, или
Long.MAX_VALUEесли бесконечно, неизвестно или слишком дорого для вычисления.
characteristics
public int characteristics()
Spliterator.ORDERED, Spliterator.DISTINCT, Spliterator.SORTED, Spliterator.SIZED, Spliterator.NONNULL, Spliterator.IMMUTABLE, Spliterator.CONCURRENT, Spliterator.SUBSIZED. Повторные вызовы characteristics() для данного разделителя до или между вызовами trySplit должны всегда возвращать тот же результат. Если разделитель сообщает несогласованный набор характеристик (либо те, которые возвращаются из одного вызова, либо через несколько вызовов), гарантии не могут быть даны относительно любого вычисления с использованием этого разделителя.
- Указано в:
-
characteristicsв интерфейсеSpliterator<Long> - Требования к реализации:
- Эта реализация возвращает характеристики, как указано при создании.
- Возвращает:
- представление характеристик
© 1993, 2023, 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/21/docs/api/java.base/java/util/Spliterators.AbstractLongSpliterator.html