Lijsten wijzigen met ListIterator

Input/Output en streams in Java

Alex Liu

Software Development Engineer

Iterator vs ListIterator

Vergelijking tussen Iterator en ListIterator

Input/Output en streams in Java

Voorbeeld-ArrayList

import java.util.ArrayList;
public class SampleData {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
    }
}  
[Alice, Bob, Charlie]
Input/Output en streams in Java

Een lijst doorlopen met ListIterator

// Importeer de klasse ListIterator
import java.util.ListIterator;

// Maak een ListIterator voor de lijst `names` ListIterator<String> it = names.listIterator(); // Gebruik .hasNext() en `.next()` om te itereren en regel voor regel te printen while (it.hasNext()) { System.out.println(it.next()); }
Alice 
Bob 
Charlie
Input/Output en streams in Java

Achteruit lopen met ListIterator

  • Gebruik .previous() om achteruit te gaan
// Maak een ListIterator voor de lijst `names`
ListIterator<String> it = names.listIterator(names.size());
// Gebruik .hasPrevious() om te checken of de iterator het begin heeft bereikt
while (it.hasPrevious()) {
    // Gebruik .previous() om elementen in omgekeerde volgorde op te halen
    System.out.println(it.previous());}
  • Print in omgekeerde volgorde, output:
Charlie
Bob
Alice
Input/Output en streams in Java

Elementen wijzigen tijdens iteratie

  • De methode .set() gebruiken
// Maak een ListIterator voor de lijst names
ListIterator<String> it = names.listIterator();

// Doorloop de lijst en wijzig een element met .set() while (it.hasNext()) { String name = it.next(); if ("Bob".equals(name)) it.set("Bobby"); }
  • Gewijzigde names-lijst:
[Alice, Bobby, Charlie]
Input/Output en streams in Java

Elementen toevoegen tijdens iteratie

  • Gebruik .add() om elementen toe te voegen
ListIterator<String> it = names.listIterator();

// Doorloop de lijst en voeg een element in met .add() while (it.hasNext()) { String name = it.next(); if ("Charlie".equals(name)) it.add("David"); }
  • Gewijzigde names-lijst:
    [Alice, Bobby, Charlie, David]
    
Input/Output en streams in Java

Samenvatting

  • ListIterator breidt Iterator uit
    • Ondersteunt voor- én achteruit lopen
    • Laat aanpassen toe tijdens itereren
  • Belangrijke methoden

    • .next()/.previous(): Vooruit/achteruit navigeren
    • .set(): Huidig element wijzigen
    • .add(): Dynamisch invoegen
    • .remove(): Veilig verwijderen
    • Werkt alleen op Lists (ArrayList, LinkedList, enz.)
Input/Output en streams in Java

Laten we oefenen!

Input/Output en streams in Java

Preparing Video For Download...