English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Controllo dei flussi Java

Array Java

Java orientato agli oggetti (I)

Java orientato agli oggetti (II)

Java orientato agli oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (Coda)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Interfaccia Java Iterator

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.

Metodi dell'iteratore

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

Esempio: Implementazione dell'iteratore

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.