Java -iterator


Java-iterator

An Iteratoris 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.utilpakket importeren.


Een iterator krijgen

De iterator()methode kan worden gebruikt om een Iteratorvoor 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.