Spec-Zone.ru › OpenJDK 8

Класс Spliterators.AbstractIntSpliterator

  • java.lang.Object
    • java.util.Spliterators.AbstractIntSpliterator
Все реализуемые интерфейсы:
Spliterator<Integer>, Spliterator.OfInt, Spliterator.OfPrimitive<Integer,IntConsumer,Spliterator.OfInt>
Вложенный класс:
Spliterators

public abstract static class Spliterators.AbstractIntSpliterator
extends Object
implements Spliterator.OfInt

Абстрактный Spliterator.OfInt, реализующий trySplit для ограниченного параллелизма.

Для реализации разделителя, расширяющий класс должен лишь реализовать Spliterator.OfInt.tryAdvance(java.util.function.IntConsumer). Расширяющий класс должен переопределить Spliterator.OfInt.forEachRemaining(java.util.function.IntConsumer), если это позволит обеспечить более эффективную реализацию.

Примечание API:
Этот класс полезен для создания разделителя, когда невозможно или сложно эффективно разделить элементы таким образом, чтобы позволить сбалансированное параллельное вычисление.

Альтернативой использованию этого класса, также позволяющей ограниченный паралелизм, является создание разделителя из итератора (см. Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, long, int). В зависимости от обстоятельств, использование итератора может быть проще или удобнее, чем расширение этого класса. Например, если уже доступен итератор, нет необходимости расширять этот класс.

С момента:
1.8
См. также:
Spliterators.spliterator(java.util.PrimitiveIterator.OfInt, 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 AbstractIntSpliterator(long est, int additionalCharacteristics)

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

Методы

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

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

long estimateSize()

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

Spliterator.OfInt trySplit()

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

Методы, унаследованные от класса java.lang.Object

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

Методы, унаследованные от интерфейса java.util.Spliterator.OfInt

forEachRemaining, forEachRemaining, tryAdvance, tryAdvance

Методы, унаследованные от интерфейса java.util.Spliterator

getComparator, getExactSizeIfKnown, hasCharacteristics

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

AbstractIntSpliterator

protected AbstractIntSpliterator(long est,
                                 int additionalCharacteristics)

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

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

Методы

trySplit

public Spliterator.OfInt trySplit()

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

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

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

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

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

Указано в:
trySplit в интерфейсе Spliterator<Integer>
Указано в:
trySplit в интерфейсе Spliterator.OfInt
Указано в:
trySplit в интерфейсе Spliterator.OfPrimitive<Integer,IntConsumer,Spliterator.OfInt>
Возвращает:
разделитель 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<Integer>
Требования к реализации:
Эта реализация возвращает оценочный размер, как сообщается при создании, и, если оценочный размер известен, уменьшается при разделении.
Возвращает:
оценочный размер или 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<Integer>
Требования к реализации:
Эта реализация возвращает характеристики, как сообщается при создании.
Возвращает:
представление характеристик

© 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