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.
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.
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
- Översikt över List och Set
- Iteratorer och utökad for-loop
- Verktyg för collections