Интерфейс Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>>
- Параметры типа:
T— тип элементов, возвращаемых этим Spliterator. Тип должен быть типом-оболочкой для примитивного типа, напримерIntegerдля примитивного типаint.T_CONS— тип потребителя примитивных значений. Тип должен быть примитивной специализациейConsumerдляT, напримерIntConsumerдляInteger.T_SPLITR— тип примитивного Spliterator. Тип должен быть примитивной специализацией Spliterator дляT, напримерSpliterator.OfIntдляInteger.
- Все суперинтерфейсы:
Spliterator<T>
- Все известные подинтерфейсы:
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong
- Все известные реализующие классы:
Spliterators.AbstractDoubleSpliterator, Spliterators.AbstractIntSpliterator, Spliterators.AbstractLongSpliterator
- Внешний интерфейс:
Spliterator<T>
public static interface Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>> extends Spliterator<T>
Spliterator, специализированный для примитивных значений.
- Начиная с версии:
- 1.8
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе Spliterator
Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T, T_CONS, T_SPLITR> | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
Spliterator.OfDouble |
Spliterator, специализированный для значений double. |
static interface |
Spliterator.OfInt |
Spliterator, специализированный для значений int. |
static interface |
Spliterator.OfLong |
Spliterator, специализированный для значений long. |
static interface |
Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends Spliterator.OfPrimitive<T, |
Spliterator, специализированный для примитивных значений. |
Краткое описание полей
Поля, объявленные в интерфейсе Spliterator
CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CONCURRENT |
Значение характеристики, указывающее, что источник элементов может безопасно изменяться одновременно (с добавлением, заменой и/или удалением элементов) несколькими потоками без внешней синхронизации. |
static final int |
DISTINCT |
Значение характеристики, указывающее, что для каждой пары встреченных элементов x, y, !x.equals(y). |
static final int |
IMMUTABLE |
Значение характеристики, указывающее, что структура источника элементов не может быть изменена; то есть элементы нельзя добавлять, заменять или удалять, поэтому такие изменения не могут происходить во время обхода. |
static final int |
NONNULL |
Значение характеристики, указывающее, что источник гарантирует, что встреченные элементы не будут null. |
static final int |
ORDERED |
Значение характеристики, указывающее, что для элементов определён порядок обхода. |
static final int |
SIZED |
Значение характеристики, указывающее, что значение, возвращаемое методом estimateSize() до обхода или разбиения, представляет собой конечный размер, который при отсутствии структурных изменений источника точно соответствует количеству элементов, которые будут встречены при полном обходе. |
static final int |
SORTED |
Значение характеристики, указывающее, что порядок обхода соответствует определённому порядку сортировки. |
static final int |
SUBSIZED |
Значение характеристики, указывающее, что все Spliterator, полученные в результате trySplit(), будут иметь характеристики Spliterator.SIZED и Spliterator.SUBSIZED. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEachRemaining |
Выполняет указанное действие для каждого оставшегося элемента последовательно в текущем потоке, пока все элементы не будут обработаны или действие не вызовет исключение. |
boolean |
tryAdvance |
Если остался элемент, выполняет над ним указанное действие и возвращает true; в противном случае возвращает false. |
Методы, объявленные в интерфейсе Spliterator
characteristics, estimateSize, forEachRemaining, getComparator, getExactSizeIfKnown, hasCharacteristics, tryAdvance, trySplit | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
characteristics() |
Возвращает набор характеристик этого Spliterator и его элементов. |
long |
estimateSize() |
Возвращает оценку количества элементов, которые будут встречены при обходе с помощью Spliterator.forEachRemaining(Consumer), или возвращает Long.MAX_VALUE, если это количество бесконечно, неизвестно или его вычисление слишком затратно. |
default void |
forEachRemaining |
Выполняет указанное действие для каждого оставшегося элемента последовательно в текущем потоке, пока все элементы не будут обработаны или действие не вызовет исключение. |
default Comparator |
getComparator() |
Если источник этого Spliterator отсортирован по Spliterator.SORTED с помощью Comparator, возвращает этот Comparator. |
default long |
getExactSizeIfKnown() |
Вспомогательный метод, возвращающий Spliterator.estimateSize(), если этот Spliterator имеет характеристику Spliterator.SIZED, и -1 в противном случае. |
default boolean |
hasCharacteristics |
Возвращает true, если Spliterator.characteristics() этого Spliterator содержат все указанные характеристики. |
boolean |
tryAdvance |
Если остался элемент, выполняет над ним указанное действие и возвращает true; в противном случае возвращает false. |
Spliterator |
trySplit() |
Если этот spliterator можно разделить на части, возвращает Spliterator, охватывающий элементы, которые после возврата из этого метода больше не будут охватываться данным Spliterator. |
Подробное описание методов
tryAdvance
boolean tryAdvance(T_CONS action)
Если остался элемент, выполняет над ним указанное действие и возвращает
true; в противном случае возвращает false. Если этот Spliterator имеет характеристику Spliterator.ORDERED, действие выполняется над следующим элементом в порядке обхода. Исключения, вызванные действием, передаются вызывающему коду. Дальнейшее поведение spliterator не определено, если действие вызывает исключение.
- Параметры:
-
action— действие - Возвращает:
-
false, если при входе в этот метод оставшихся элементов не было; в противном случаеtrue. - Вызывает:
-
NullPointerException— если указанное действие равно null
forEachRemaining
default void forEachRemaining(T_CONS action)
Выполняет указанное действие для каждого оставшегося элемента последовательно в текущем потоке, пока все элементы не будут обработаны или действие не вызовет исключение. Если этот Spliterator имеет характеристику
Spliterator.ORDERED, действия выполняются в порядке обхода. Исключения, вызванные действием, передаются вызывающему коду. Дальнейшее поведение spliterator не определено, если действие вызывает исключение.
- Требования к реализации:
- Реализация по умолчанию многократно вызывает
tryAdvance(T_CONS), пока метод не вернётfalse. По возможности этот метод следует переопределять. - Параметры:
-
action— действие - Вызывает:
-
NullPointerException— если указанное действие равно null
© 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.