Интерфейс PrimitiveIterator<T, T_CONS>
- Параметры типа:
T— тип элементов, возвращаемых этим PrimitiveIterator. Тип должен быть типом-обёрткой для примитивного типа, напримерIntegerдля примитивного типаint.T_CONS— тип потребителя примитивных значений. Тип должен быть примитивной специализациейConsumerдляT, напримерIntConsumerдляInteger.
- Все суперинтерфейсы:
Iterator<T>
- Все известные подинтерфейсы:
PrimitiveIterator.OfDouble, PrimitiveIterator.OfInt, PrimitiveIterator.OfLong
public interface PrimitiveIterator<T,T_CONS> extends Iterator<T>
Iterator. Предусмотрены специализированные подтипы для значений int, long и double. Реализации по умолчанию специализированных подтипов для методов Iterator.next() и Iterator.forEachRemaining(java.util.function.Consumer) упаковывают примитивные значения в экземпляры соответствующего класса-обёртки. Такая упаковка может свести на нет преимущества использования примитивных специализаций. Чтобы избежать упаковки, следует использовать соответствующие методы, работающие с примитивными типами. Например, вместо PrimitiveIterator.OfInt.next() и PrimitiveIterator.OfInt.forEachRemaining(java.util.function.Consumer) предпочтительно использовать PrimitiveIterator.OfInt.nextInt() и PrimitiveIterator.OfInt.forEachRemaining(java.util.function.IntConsumer).
Итерация по примитивным значениям с помощью методов, основанных на упаковке, next() и forEachRemaining(), не влияет на порядок, в котором встречаются значения после преобразования в упакованные значения.
- Примечание по реализации:
- Если логическое системное свойство
org.openjdk.java.util.stream.tripwireустановлено вtrue, при упаковке примитивных значений во время работы со специализациями примитивных подтипов выводятся диагностические предупреждения. - Начиная с версии:
- 1.8
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
PrimitiveIterator.OfDouble |
Итератор, специализированный для значений double. |
static interface |
PrimitiveIterator.OfInt |
Итератор, специализированный для значений int. |
static interface |
PrimitiveIterator.OfLong |
Итератор, специализированный для значений long. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
forEachRemaining |
Выполняет указанное действие для каждого оставшегося элемента, пока не будут обработаны все элементы или действие не вызовет исключение. |
Методы, объявленные в интерфейсе Iterator
forEachRemaining, hasNext, next, remove | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEachRemaining |
Выполняет указанное действие для каждого оставшегося элемента, пока не будут обработаны все элементы или действие не вызовет исключение. |
boolean |
hasNext() |
Возвращает true, если в итерации остались элементы. |
T |
next() |
Возвращает следующий элемент итерации. |
default void |
remove() |
Удаляет из базовой коллекции последний элемент, возвращённый этим итератором (необязательная операция). |
Подробное описание методов
forEachRemaining
void forEachRemaining(T_CONS action)
Поведение итератора не определено, если действие каким-либо образом изменяет источник элементов (даже вызывая метод remove или другие методы-мутаторы подтипов Iterator), если только переопределяющий класс не определил политику конкурентного изменения.
Последующее поведение итератора не определено, если действие вызывает исключение.
- Параметры:
-
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.