Iterator Javy
Iterator Javy
An Iterator
to obiekt, którego można używać do przeglądania kolekcji, takich jak ArrayList
i HashSet . Nazywa się to „iteratorem”, ponieważ „iteracja” jest terminem technicznym oznaczającym pętlę.
Aby użyć iteratora, musisz go zaimportować z java.util
pakietu.
Uzyskiwanie iteratora
Metodę iterator()
można wykorzystać do pobrania Iterator
dla dowolnej kolekcji:
Przykład
// 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());
}
}
Zapętlanie kolekcji
Aby przejść przez kolekcję, użyj metod hasNext()
i :next()
Iterator
Przykład
while(it.hasNext()) {
System.out.println(it.next());
}
Usuwanie pozycji z kolekcji
Iteratory są zaprojektowane tak, aby łatwo zmieniać kolekcje, przez które przechodzą. Metoda remove()
może usuwać elementy z kolekcji podczas zapętlania.
Przykład
Użyj iteratora, aby usunąć liczby mniejsze niż 10 z kolekcji:
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);
}
}
Uwaga: próba usunięcia elementów za pomocą pętli for lub pętli for-each nie zadziałałaby poprawnie, ponieważ kolekcja zmienia rozmiar w tym samym czasie, w którym kod próbuje zapętlić.