Spec-Zone.ru › OpenJDK 25

Класс 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)

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе Spliterator

Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>

Краткое описание полей

Поля, объявленные в интерфейсе Spliterator

CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED

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

AbstractLongSpliterator(long est, int additionalCharacteristics)
Модификатор Конструктор Описание
protected
Создает сплитератор, сообщающий заданные предполагаемый размер и характеристики.

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

Модификатор и тип Метод Описание
int characteristics()
Возвращает набор характеристик этого сплитератора и его элементов.
long estimateSize()
Возвращает оценку количества элементов, которые будут обработаны при обходе с помощью Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если количество бесконечно, неизвестно или его вычисление слишком затратно.
Spliterator.OfLong trySplit()
Если этот сплитератор можно разделить, возвращает сплитератор, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться данным сплитератором.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе Spliterator

getComparator, getExactSizeIfKnown, hasCharacteristics

Методы, объявленные в интерфейсе Spliterator.OfLong

forEachRemaining, tryAdvance

Методы, объявленные в интерфейсе 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(Consumer), или возвращает 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>
Требования к реализации:
Эта реализация возвращает характеристики, заданные при создании.
Возвращает:
представление характеристик

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/util/Spliterators.AbstractLongSpliterator.html

Spec-Zone.ru

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