English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo l'interfaccia Iterator di Java attraverso un esempio.
L'interfaccia Iterator della Java Collection Framework ci permette di accedere agli elementi della collezione. Ha un sotto-interfaccia ListIterator.
Tutte le collezioni Java contengono un metodo iterator() che restituisce un'istanza di iteratore per iterare sugli elementi della collezione.
L'interfaccia Iterator fornisce 4 metodi che possono essere utilizzati per eseguire vari operazioni sugli elementi della collezione.
hasNext() - Restituisce true se esiste un elemento nella collezione
next() - Restituisce l'elemento successivo della collezione
remove() - Elimina l'ultimo elemento restituito da next()
forEachRemaining() - Esegui l'operazione specificata su ogni elemento rimanente della collezione
Nell'esempio seguente, abbiamo implementato i metodi hasNext(), next(), remove() e forEachRemaining() dell'interfaccia Iterator in una lista di array.
import java.util.ArrayList; import java.util.Iterator; class Main { public static void main(String[] args) { //Crea un ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); //Crea un'istanza di Iterator Iterator<Integer> iterate = numbers.iterator(); //Utilizza il metodo next() int number = iterate.next(); System.out.println("Accedi elemento: " + number); //Utilizza il metodo remove() iterate.remove(); System.out.println("Elimina elemento: " + number); System.out.print("ArrayList aggiornata: "); //Utilizzo del metodo hasNext() while(iterate.hasNext()) { //Utilizzo del metodo forEachRemaining() iterate.forEachRemaining((value) -> System.out.print(value + ", ")); } } }
Risultato di output
ArrayList: [1, 3, 2] Accesso all'elemento: 1 Elemento eliminato: 1 ArrayList aggiornata: 3, 2,
Nell'esempio sopra, nota la seguente istruzione:
iterate.forEachRemaining((value) -> System.put.print(value + ", "));
Qui, faremoEspressione lambdaTrasmesso come parametro del metodo forEachRemaining().
Ora, questo metodo stampare tutti gli altri elementi della lista di array.