Java -Iterator


Java-Iterator

An Iteratorist ein Objekt, das zum Durchlaufen von Sammlungen wie ArrayList und HashSet verwendet werden kann . Es wird „Iterator“ genannt, weil „Iteration“ der Fachbegriff für Schleifen ist.

java.utilUm einen Iterator zu verwenden, müssen Sie ihn aus dem Paket importieren .


Einen Iterator bekommen

Die iterator()Methode kann verwendet werden, um eine Iteratorfür jede Sammlung zu erhalten:

Beispiel

// 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());
  }
}


Eine Sammlung durchlaufen

Um eine Sammlung zu durchlaufen, verwenden Sie die Methoden hasNext()und von :next()Iterator

Beispiel

while(it.hasNext()) {
  System.out.println(it.next());
}


Entfernen von Elementen aus einer Sammlung

Iteratoren sind so konzipiert, dass sie die Sammlungen, die sie durchlaufen, einfach ändern können. Die remove()Methode kann während einer Schleife Elemente aus einer Sammlung entfernen.

Beispiel

Verwenden Sie einen Iterator, um Zahlen kleiner als 10 aus einer Sammlung zu entfernen:

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);
  }
}

Hinweis: Der Versuch, Elemente mit einer for-Schleife oder einer for-each-Schleife zu entfernen, würde nicht richtig funktionieren, da die Größe der Sammlung zur gleichen Zeit geändert wird, zu der der Code versucht, eine Schleife auszuführen.