Java Iterator
Java Iterator
An Iterator
je objekt, který lze použít k procházení kolekcí, jako je ArrayList
a HashSet . Říká se tomu „iterátor“, protože „iterace“ je technický termín pro opakování.
Chcete-li použít iterátor, musíte jej importovat z java.util
balíčku.
Získání iterátoru
Metodu iterator()
lze použít k získání Iterator
pro jakoukoli kolekci:
Příklad
// 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());
}
}
Procházení sbírkou
Chcete-li procházet kolekcí, použijte metody hasNext()
a next()
metody Iterator
:
Příklad
while(it.hasNext()) {
System.out.println(it.next());
}
Odebrání položek ze sbírky
Iterátory jsou navrženy tak, aby snadno měnily kolekce, kterými prochází. Metoda remove()
může odstranit položky z kolekce při opakování.
Příklad
Pomocí iterátoru odstraňte z kolekce čísla menší než 10:
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);
}
}
Poznámka: Pokus o odstranění položek pomocí cyklu for nebo cyklu for-each by nefungoval správně, protože kolekce mění velikost ve stejnou dobu, kdy se kód pokouší vytvořit smyčku.