Java Academy · Lezione

Iteratori e for avanzato

Attraversare le collections con Iterator e il for avanzato. Imparare a rimuovere elementi in sicurezza durante l’iterazione ed evitare gli errori comuni.

Lezione 2 di 38 passaggi

Iteratori e for avanzato è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 3 lezioni in totale.

Panoramica

Iterator offre un controllo passo passo per attraversare una collection. Enhanced for (for-each) è più breve e leggibile quando si devono leggere gli elementi. Utilizzi Iterator quando deve rimuovere elementi durante l'attraversamento.

Iterator e for-each

  • Iterator: lo utilizzi quando potrebbe dover rimuovere elementi o quando serve un controllo preciso.
  • Enhanced for: è ideale per i cicli di sola lettura.
  • Non modifichi mai strutturalmente la collection all'interno di enhanced for.

Codice: Iterator di base

Iterator utilizza hasNext() e next(). Ogni chiamata a next() avanza e restituisce l'elemento.

public class Main {
  public static void main(String[] args) {
    java.util.List<String> names = new java.util.ArrayList<>();
    names.add("Ada"); names.add("Bob"); names.add("Cyd");

    java.util.Iterator<String> it = names.iterator();
    while (it.hasNext()) {
      String s = it.next();
      System.out.println(s);
    }
  }
}

Problema comune

Problema comune: rimuovere direttamente gli elementi all'interno di un ciclo enhanced for spesso genera ConcurrentModificationException. Utilizzi Iterator per apportare modifiche strutturali in sicurezza.

Codice: rimozione sicura

Rimozione sicura: chiami remove() sull'Iterator subito dopo next() quando viene trovata una corrispondenza.

public class Main {
  public static void main(String[] args) {
    java.util.List<String> words = new java.util.ArrayList<>();
    words.add("to"); words.add("be"); words.add("or"); words.add("not");

    java.util.Iterator<String> it = words.iterator();
    while (it.hasNext()) {
      String w = it.next();
      if (w.length() <= 2) {
        it.remove(); // safe removal
      }
    }
    System.out.println(words); // [not]
  }
}

Codice: enhanced for/forEach

Enhanced for è chiaro per la lettura. forEach con una lambda è un altro stile conciso (Java 8+).

public class Main {
  public static void main(String[] args) {
    java.util.Set<String> tags = new java.util.HashSet<>();
    tags.add("java"); tags.add("collections"); tags.add("oop");

    // enhanced for: read-only
    for (String t : tags) {
      System.out.print("[" + t + "]");
    }
    System.out.println();

    // Java 8+ forEach
    tags.forEach(t -> System.out.println("tag=" + t));
  }
}

Verifica sulla rimozione con Iterator

Verifica rapida: come si rimuovono in sicurezza gli elementi mentre si itera su una List?

Riepilogo

Riepilogo: utilizzi enhanced for per semplici operazioni di lettura. Utilizzi Iterator quando deve rimuovere elementi durante l'attraversamento. In questo modo si prevengono gli errori a runtime.

Gratis per iniziare

Impara Java con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
104
Lezioni
374

Domande Frequenti

La lezione «Iteratori e for avanzato» è gratuita?

Sì — il testo completo di «Iteratori e for avanzato» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 3 lezioni in totale.

Cosa imparerò in «Iteratori e for avanzato»?

Attraversare le collections con Iterator e il for avanzato. Imparare a rimuovere elementi in sicurezza durante l’iterazione ed evitare gli errori comuni. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «Iteratori e for avanzato»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Panoramica di List e Set
  2. Iteratori e for avanzato
  3. Utility per le collections
← Torna a Java Academy