Sobes.tech
Junior

Kas yra iteratorius ir kam jis reikalingas?

sobes.tech AI

Atsakymas iš AI

Java kalboje iteratorius yra objektas, leidžiantis seka peržiūrėti kolekcijos elementus be būtinybės žinoti jos vidinę struktūrą.

Pagrindiniai iteratoriaus naudojimo tikslai:

  • Abstrakcija: suteikia vienodą būdą pereiti per skirtingų tipų kolekcijas (sąrašus, rinkinius ir kt.).
  • Saugumas: leidžia pašalinti elementus iš kolekcijos per iteraciją nesulaužant perėjimo logikos.
  • Nepriklausomybė: elementų perėjimas nepriklauso nuo konkrečios kolekcijos įgyvendinimo.

Iterator<E> sąsaja apibrėžia tris pagrindinius metodus:

  • hasNext(): grąžina true, jei dar yra elementų.
  • next(): grąžina kitą elementą.
  • remove(): pašalina iš pagrindinės kolekcijos elementą, kuris buvo grąžintas paskutinio next() iškvietimo metu.

Pavyzdys naudojimo:

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

// Iterator naudojimo pavyzdys
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();

        // Elementų perėjimas naudojant iteratorių
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Elemento pašalinimas per iteraciją (pavyzdys)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("Po pašalinimo: " + list);
    }
}