Spec-Zone.ru › OpenJDK 27

Интерфейс 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(T_CONS action)
Выполняет указанное действие для каждого оставшегося элемента, пока не будут обработаны все элементы или действие не вызовет исключение.

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

forEachRemaining, hasNext, next, remove
Модификатор и тип Метод Описание
default void forEachRemaining(Consumer<? super T> action)
Выполняет указанное действие для каждого оставшегося элемента, пока не будут обработаны все элементы или действие не вызовет исключение.
boolean hasNext()
Возвращает true, если в итерации остались элементы.
T next()
Возвращает следующий элемент итерации.
default void remove()
Удаляет из базовой коллекции последний элемент, возвращённый этим итератором (необязательная операция).

Подробное описание методов

forEachRemaining

void forEachRemaining(T_CONS action)
Выполняет указанное действие для каждого оставшегося элемента, пока не будут обработаны все элементы или действие не вызовет исключение. Действия выполняются в порядке итерации, если этот порядок определён. Исключения, вызванные действием, передаются вызывающему коду.

Поведение итератора не определено, если действие каким-либо образом изменяет источник элементов (даже вызывая метод remove или другие методы-мутаторы подтипов Iterator), если только переопределяющий класс не определил политику конкурентного изменения.

Последующее поведение итератора не определено, если действие вызывает исключение.

Параметры:
action — действие, которое необходимо выполнить для каждого элемента
Вызывает:
NullPointerException — если указанное действие равно null

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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