Что такое Iterator в Java?
Интерфейс Iterator в Java предоставляет способ последовательного доступа к элементам коллекции без необходимости знать ее внутреннюю структуру. Это часть стандартной библиотеки Java и используется для работы с коллекциями, такими как списки, множества и другие типы.
Итератор предоставляет три основных метода: hasNext(), который проверяет наличие следующего элемента, next(), который возвращает следующий элемент, и remove(), который удаляет последний возвращенный элемент из коллекции.
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// Создание итератора для списка
Iterator<String> iterator = list.iterator();
// Перебор элементов с использованием итератора
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
// Удаление элемента, если он соответствует условию
if (fruit.equals("Banana")) {
iterator.remove();
}
}
System.out.println("Оставшиеся элементы: " + list);
}
}
Итераторы особенно полезны, когда необходимо обрабатывать элементы коллекции в цикле. Они позволяют избегать ошибок, связанных с изменением коллекции во время итерации. Это достигается благодаря использованию метода remove(), который корректно обновляет состояние итератора.
Однако следует помнить, что после создания итератор становится независимым от оригинальной коллекции. Любое добавление элементов в коллекцию после создания итератора не будет отражено в текущем экземпляре итератора. Для обновленной итерации потребуется создать новый итератор.