Java -iterator
Java-iterator
An Iterator
is een object dat kan worden gebruikt om door collecties te bladeren, zoals ArrayList
en HashSet . Het wordt een "iterator" genoemd omdat "itereren" de technische term is voor looping.
Om een Iterator te gebruiken, moet u deze uit het java.util
pakket importeren.
Een iterator krijgen
De iterator()
methode kan worden gebruikt om een Iterator
voor elke verzameling te krijgen:
Voorbeeld
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Get the iterator
Iterator<String> it = cars.iterator();
// Print the first item
System.out.println(it.next());
}
}
Door een verzameling bladeren
Om door een verzameling te bladeren, gebruikt u de hasNext()
en next()
methoden van de Iterator
:
Voorbeeld
while(it.hasNext()) {
System.out.println(it.next());
}
Items uit een collectie verwijderen
Iterators zijn ontworpen om de collecties die ze doorlopen gemakkelijk te wijzigen. De remove()
methode kan items uit een verzameling verwijderen tijdens het lussen.
Voorbeeld
Gebruik een iterator om getallen kleiner dan 10 uit een verzameling te verwijderen:
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove();
}
}
System.out.println(numbers);
}
}
Opmerking: proberen om items te verwijderen met een for-lus of een for-each-lus zou niet correct werken omdat de verzameling van grootte verandert terwijl de code probeert een lus te maken.