Sobes.tech
Junior

Cos'è un iteratore e a cosa serve?

sobes.tech AI

Risposta dell'AI

Un iteratore in Java è un oggetto che consente di attraversare sequenzialmente gli elementi di una collezione senza dover conoscere la sua struttura interna.

Gli obiettivi principali dell'uso dell'iteratore:

  • Astrazione: Fornisce un modo unificato per attraversare gli elementi di diversi tipi di collezioni (liste, insiemi, ecc.).
  • Sicurezza: Permette di rimuovere elementi dalla collezione durante l'iterazione senza violare la logica di attraversamento.
  • Indipendenza: L'attraversamento degli elementi non dipende dall'implementazione concreta della collezione.

L'interfaccia Iterator<E> definisce tre metodi principali:

  • hasNext(): Restituisce true se ci sono ancora elementi nell'iterazione.
  • next(): Restituisce il prossimo elemento nell'iterazione.
  • remove(): Rimuove dall'insieme di base l'elemento restituito dall'ultima chiamata a next().

Esempio di utilizzo:

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

// Esempio di utilizzo dell'iteratore
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();

        // Attraversamento degli elementi con l'iteratore
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Rimozione di un elemento durante l'iterazione (esempio)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("Lista dopo la rimozione: " + list);
    }
}