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

Tutorial di base Java

Java Controllo dei flussi

Java Array

Java Orientamento ad oggetti (I)

Java Orientamento ad oggetti (II)

Java Orientamento ad oggetti (III)

Gestione delle eccezioni Java

Java Elenco (List)

Java Queue (coda)

Java Map collection

Java Set collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Interfaccia Java ListIterator

In questo tutorial, impareremo utilizzando esempi l'interfaccia Java ListIterator.

L'interfaccia ListIterator del framework di collection Java fornisce funzionalità di accesso agli elementi dell'elenco.

È bidirezionale. Questo significa che ci permette di iterare sugli elementi dell'elenco in entrambe le direzioni.

Erede dell'interfaccia Iterator.

L'interfaccia List fornisce il metodo ListIterator(), che restituisce un'istanza dell'interfaccia ListIterator.

Metodi di ListIterator

L'interfaccia ListIterator fornisce metodi utilizzabili per eseguire varie operazioni sugli elementi dell'elenco.

  • hasNext() - Restituisce true se l'elenco contiene elementi

  • next() - Restituisce l'elemento successivo dell'elenco

  • nextIndex() - Restituisce l'indice dell'elemento restituito dal metodo next()

  • previous() - Restituisce l'elemento precedente della lista

  • previousIndex() - Restituisce l'indice dell'elemento restituito dalla metodo previous()

  • remove() - Elimina l'elemento restituito da next() o previous()

  • set() - Sostituisci l'elemento restituito da next() o previous() con l'elemento specificato

Esempio 1: Implementazione di ListIterator

Nella seguente esempio, abbiamo implementato i metodi next(), nextIndex() e hasNext() dell'interfaccia ListIterator in una lista di array.

import java.util.ArrayList;
import java.util.ListIterator;
class Main {
    public static void main(String[] args) {
        //创建一个ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(3);
        numbers.add(2);
        System.out.println("ArrayList: " + numbers);
        //创建ListIterator的实例
        ListIterator<Integer> iterate = numbers.listIterator();
        //Utilizzo del metodo next()
        int number1 = iterate.next();
        System.out.println("Elemento successivo: " + number1);
        //Utilizzo del metodo nextIndex()
        int index1 = iterate.nextIndex();
        System.out.println("Posizione dell'elemento successivo: " + index1);
        //Utilizzo del metodo hasNext()
        System.out.println("C'è un elemento successivo? " + iterate.hasNext());
    }
}

Risultato di output

ArrayList: [1, 3, 2]
Elemento successivo: 1
Posizione dell'elemento successivo: 1
C'è un elemento successivo? true

Esempio 2: Implementazione di ListIterator

Nella seguente esempio, abbiamo implementato i metodi previous() e previousIndex() dell'interfaccia ListIterator in una lista di array.

import java.util.ArrayList;
import java.util.ListIterator;
class Main {
    public static void main(String[] args) {
        //创建一个ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(3);
        numbers.add(2);
        System.out.println("ArrayList: " + numbers);
        //创建ListIterator的实例
        ListIterator<Integer> iterate = numbers.listIterator();
        iterate.next();
        iterate.next();
        //Utilizzo del metodo previous()
        int number1 = iterate.previous();
        System.out.println("Elemento precedente: " + number1);
        //Utilizzo di previousIndex ()
        int index1 = iterate.previousIndex();
        System.out.println("Posizione dell'elemento precedente: " + index1);
    }
}

Risultato di output

ArrayList: [1, 3, 2]
Elemento precedente: 3
Posizione dell'elemento precedente: 0

Nell'esempio sopra, l'istanza dell'iteratore all'inizio era prima di 1. Poiché prima di 1 non c'era alcun elemento, la chiamata al metodo previous() solleva un'eccezione.

Poi, abbiamo utilizzato il metodo next() due volte. Ora l'istanza di Iterator sarà tra 3 e 2.

Di conseguenza, il metodo previous() restituisce 3.