РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
331 of 1163 menu

Класс Iterator

Класс Iterator представляет собой интерфейс из пакета java.util, который позволяет последовательно обходить элементы коллекции. Он приходит на смену устаревшему классу Enumeration и является основой для циклов for-each. Основные методы: hasNext проверяет, есть ли следующий элемент, next возвращает текущий элемент и сдвигает курсор вперед, remove удаляет последний возвращенный элемент, а forEachRemaining применяет действие к каждому оставшемуся элементу. Получить итератор можно с помощью метода iterator у любой коллекции.

Синтаксис

Iterator<Type> iterator = collection.iterator(); iterator.hasNext(); iterator.next(); iterator.remove(); iterator.forEachRemaining(action);

Пример

Давайте создадим список и переберем его элементы с помощью итератора:

import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = List.of("a", "b", "c", "d", "e"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String elem = iterator.next(); System.out.println(elem); } } }

Результат выполнения кода:

"a" "b" "c" "d" "e"

Пример

Давайте удалим элементы из списка во время перебора с помощью метода remove:

import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5)); Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()) { Integer elem = iterator.next(); if (elem % 2 == 0) { iterator.remove(); } } System.out.println(list); } }

Результат выполнения кода:

[1, 3, 5]

Пример

Давайте применим действие к каждому оставшемуся элементу с помощью метода forEachRemaining:

import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List<String> list = List.of("a", "b", "c", "d", "e"); Iterator<String> iterator = list.iterator(); iterator.next(); iterator.forEachRemaining(elem -> System.out.println(elem)); } }

Результат выполнения кода:

"b" "c" "d" "e"

Смотрите также

  • интерфейс Iterable,
    который предоставляет итератор
  • метод hasNext,
    который проверяет наличие следующего элемента
  • метод next,
    который возвращает следующий элемент
  • интерфейс ListIterator,
    который позволяет перебирать список в обоих направлениях
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить