Java ListIterator-interface: Praktische gids voor bidirectionele doorloop
Java ListIterator-interface
Deze tutorial biedt een uitgebreide kijk op Java's ListIterator-interface, met real-world voorbeelden en duidelijke uitleg.
De ListIterator-interface breidt Iterator uit en biedt bidirectionele doorloop, waarmee je voorwaarts en achterwaarts door een List kunt navigeren terwijl je modificaties op de vlucht uitvoert.
Belangrijkste kenmerken zijn de mogelijkheid om te navigeren, verwijderen en vervangen van elementen, wat het een essentieel hulpmiddel maakt voor elke Java-ontwikkelaar die met lijsten werkt.
Kernmethoden van ListIterator
hasNext()– Retourneerttrueals er een volgend element bestaatnext()– Ga naar en retourneer het volgende elementnextIndex()– Geeft de index van het element datnext()zal retournerenprevious()– Ga achterwaarts en retourneer het vorige elementpreviousIndex()– Geeft de index van het element datprevious()zal retournerenremove()– Verwijdert het laatste element dat doornext()ofprevious()werd geretourneerdset(E e)– Vervangt het laatst geretourneerde element door de gespecifieerde waarde
Voorbeeld 1: Voorwaarts navigeren
Hieronder een beknopt voorbeeld dat next(), nextIndex() en hasNext() demonstreert op een ArrayList:
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> getallen = new ArrayList<>();
getallen.add(1);
getallen.add(3);
getallen.add(2);
System.out.println("ArrayList: " + getallen);
ListIterator<Integer> iterator = getallen.listIterator();
int eerste = iterator.next();
System.out.println("Volgend element: " + eerste);
int volgendeIndex = iterator.nextIndex();
System.out.println("Positie van volgend element: " + volgendeIndex);
System.out.println("Is er een volgend element? " + iterator.hasNext());
}
}
Output
ArrayList: [1, 3, 2] Volgend element: 1 Positie van volgend element: 1 Is er een volgend element? true
Voorbeeld 2: Achterwaarts navigeren
Dit voorbeeld toont previous() en previousIndex() na twee keer next() aan te roepen:
import java.util.ArrayList;
import java.util.ListIterator;
class Main {
public static void main(String[] args) {
ArrayList<Integer> getallen = new ArrayList<>();
getallen.add(1);
getallen.add(3);
getallen.add(2);
System.out.println("ArrayList: " + getallen);
ListIterator<Integer> iterator = getallen.listIterator();
iterator.next();
iterator.next();
int vorig = iterator.previous();
System.out.println("Vorig element: " + vorig);
int vorigeIndex = iterator.previousIndex();
System.out.println("Positie van het vorige element: " + vorigeIndex);
}
}
Output
ArrayList: [1, 3, 2] Vorig element: 3 Positie van het vorige element: 0
Initieel is de iterator gepositioneerd voor het eerste element, dus previous() zou een exception gooien. Na twee next()-oproepen zit de iterator tussen 3 en 2, waardoor previous() 3 retourneert.
Java
- C#-interfaces onder de knie: definitie, implementatie en praktische use cases
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java NavigableSet interface: Navigatie, sortering en praktische voorbeelden
- Java Lambda-expressies: Van basis tot Stream API
- Interface vs Abstracte Klasse in Java: De Juiste Abstractie Kiezen
- Java Interfaces begrijpen: Definities, Gebruik en Best Practices
- Java 9 Private Interface Methods: Encapsulatie & herbruik verbeteren