Интерфейс Iterator

В этом разделе рассмотрим что такое итератор Java языка.

Перебор содержимого коллекции может быть осуществлен двумя способами: c помощью цикла for each и с помощью итератора.

Итератор позволяет осуществлять обход коллекции и при желании удалять избранные элементы. Используется интерфейс Iterator.

Чтобы получить объект итератора, вызовите метод Iterator<E> iterator().

Методы интерфейса Iterator:

  • boolean hasNext() - возвращает true, если есть еще элементы. В противном случае возвращает false.
  • E next() - возвращает следующий элемент. Если следующий элемент коллекции отсутствует, то метод next() генерирует исключение NoSuchElementException.
  • void remove() - удаляет текущий элемент. Возбуждает исключение IllegalStateException, если предпринимается попытка вызвать remove(), которой не предшествовал вызов next().

Пример использования интерфейса Iterator

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorDemo {
    public static void main(String[] args) {
        List<String> arrayList = new ArrayList<>();
        arrayList.add("C");
        arrayList.add("A");
        arrayList.add("E");
        arrayList.add("B");
        arrayList.add("D");
        arrayList.add("F");

        Iterator<String> iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.print(element + " ");
        }
    }
}

Все классы в каркасе коллекций усовершенствованы таким образом, чтобы реализовывать интерфейс Iterable. Это означает, что содержимое коллекции можно перебрать, организовав цикл for в стиле for each. Конструкция for each скрывает итератор, поэтому нельзя вызвать метод remove().

Read also:
Trustpilot
Trustpilot
Comments