Sobes.tech
Junior

Какво е итератор и за какво е необходим?

sobes.tech AI

Отговор от AI

Итератор в Java е обект, който позволява последователно обхождане на елементите на колекция без необходимостта да се познава вътрешната ѝ структура.

Основните цели на използването на итератор:

  • Абстракция: Осигурява единен начин за обхождане на елементите за различни типове колекции (списъци, множества и др.).
  • Сигурност: Позволява да се премахват елементи от колекцията по време на обхождането, без да се нарушава логиката на обхождането.
  • Независимост: Обхождането на елементите не зависи от конкретната реализация на колекцията.

Интерфейсът Iterator<E> дефинира три основни метода:

  • hasNext(): Връща true, ако в итерацията има още елементи.
  • next(): Връща следващия елемент в итерацията.
  • remove(): Премахва от базовата колекция елемента, върнат от последния извикан next().

Пример за използване:

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

// Пример за използване на итератор
public class IteratorExample {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");

        Iterator<String> iterator = list.iterator();

        // Обхождане на елементите с итератора
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Премахване на елемент по време на обхождането (пример)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("След премахването: " + list);
    }
}