Java Academy · Lektion

Iteratorer och utökad for-loop

Gå igenom collections med Iterator och utökad for-loop. Lär er säker borttagning under iteration och vanliga fallgropar.

Lektion 2 av 38 steg

Iteratorer och utökad for-loop är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 3 lektioner.

Översikt

Iterator ger steg-för-steg-kontroll när en samling gås igenom. Enhanced for (for-each) är kortare och tydlig när element ska läsas. Använd Iterator när element behöver tas bort säkert under genomgången.

Iterator kontra for-each

  • Iterator: använd när element kan behöva tas bort eller när detaljerad kontroll behövs.
  • Enhanced for: bäst för loopar som endast läser.
  • Ändra aldrig samlingens struktur inuti en Enhanced for-loop.

Kod: grundläggande Iterator

Iterator använder hasNext() och next(). Varje anrop till next() går framåt och returnerar elementet.

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);
    }
  }
}

Fallgrop

Fallgrop: Om element tas bort direkt i en Enhanced for-loop uppstår ofta ConcurrentModificationException. Använd Iterator för säkra strukturella ändringar.

Kod: säker borttagning

Säker borttagning: anropa remove() på Iterator direkt efter next() när en matchning hittas.

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]
  }
}

Kod: enhanced for/forEach

Enhanced for passar bra när element endast ska läsas. forEach med en lambda är en annan kort variant (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));
  }
}

Kontroll av borttagning med Iterator

Snabb kontroll: Hur tar man säkert bort element medan en List itereras?

Sammanfattning

Sammanfattning: Använd Enhanced for för enkel läsning. Använd Iterator när element måste tas bort under genomgången. Det förhindrar fel vid körning.

Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
104
Lektioner
374

Vanliga frågor

Är lektionen ”Iteratorer och utökad for-loop” gratis?

Ja – hela texten till ”Iteratorer och utökad for-loop” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Iteratorer och utökad for-loop”?

Gå igenom collections med Iterator och utökad for-loop. Lär er säker borttagning under iteration och vanliga fallgropar. Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Java Academy?

Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”Iteratorer och utökad for-loop”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Java Academy-lektionen?

Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Översikt över List och Set
  2. Iteratorer och utökad for-loop
  3. Verktyg för collections
← Tillbaka till Java Academy