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

Tutorial Básico de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Conjunto Java Map

Conjunto Java Set

Java Entrada e Saída (I/O)

Reader do Java/Writer

Outros tópicos do Java

Java Interface ListIterator

Neste tutorial, vamos aprender a interface Java ListIterator com exemplos.

A interface ListIterator do Java Collection Framework oferece a funcionalidade de acesso aos elementos da lista.

É bidirecional. Isso significa que ele permite que iteremos pelos elementos da lista em ambas as direções.

Ela herda a interface Iterator.

A interface List oferece o método ListIterator() que retorna uma instância da interface ListIterator.

Métodos de ListIterator

A interface ListIterator oferece métodos que podem ser usados para executar várias operações em elementos da lista.

  • hasNext() - Se houver elementos na lista, retornar true

  • next() - Retornar o próximo elemento da lista

  • nextIndex() - Retornar o índice do elemento que o método next() retornará

  • previous() - Retornar o elemento anterior da lista

  • previousIndex()- Retornar o índice do elemento que o método previous() retornará

  • remove()- Remover o elemento retornado por next() ou previous()

  • set() - Substituir o elemento retornado por next() ou previous() pelo elemento especificado

Exemplo1: Implementação de ListIterator

Neste exemplo, implementamos os métodos next(), nextIndex() e hasNext() da interface ListIterator em uma lista de arrays.

import java.util.ArrayList;
import java.util.ListIterator;
class Main {
    public static void main(String[] args) {
        //Criar um ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(3);
        numbers.add(2);
        System.out.println("ArrayList: " + numbers);
        //Criar uma instância de ListIterator
        ListIterator<Integer> iterate = numbers.listIterator();
        //Usar o método next()
        int number1 = iterate.next();
        System.out.println("Próximo elemento: "); + number1);
        //Usar nextIndex()
        int index1 = iterate.nextIndex();
        System.out.println("Posição do próximo elemento: "); + index1);
        //Usar o método hasNext()
        System.out.println("Há mais um elemento? "); + iterate.hasNext());
    }
}

Resultados de Saída

ArrayList:  [1, 3, 2]
Próximo elemento: 1
Posição do próximo elemento: 1
Há mais um elemento? true

Exemplo2: Implementação de ListIterator

Neste exemplo, implementamos os métodos previous() e previousIndex() da interface ListIterator em uma lista de arrays.

import java.util.ArrayList;
import java.util.ListIterator;
class Main {
    public static void main(String[] args) {
        //Criar um ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(3);
        numbers.add(2);
        System.out.println("ArrayList: " + numbers);
        //Criar uma instância de ListIterator
        ListIterator<Integer> iterate = numbers.listIterator();
        iterate.next();
        iterate.next();
        //Usando o método previous()
        int number1 = iterate.previous();
        System.out.println("Elemento anterior: ") + number1);
        //Usando previousIndex()
        int index1 = iterate.previousIndex();
        System.out.println("Posição do elemento anterior: ") + index1);
    }
}

Resultados de Saída

ArrayList:  [1, 3, 2]
Elemento anterior: 3
Posição do elemento anterior: 0

No exemplo acima, a instância inicial do iterador está na posição1Antes. Porque no1Antes de não haver elementos, então a chamada do método previous() lançará uma exceção.

Em seguida, usamos next()2Este método. Agora, a instância do Iterator estará3para2entre

Portanto, o método previous() retorna3.