Neste tutorial, aprenderemos sobre a interface Java ListIterator com a ajuda de um exemplo.
A ListIterator
interface da estrutura de coleções Java fornece a funcionalidade para acessar elementos de uma lista.
É bidirecional. Isso significa que nos permite iterar os elementos de uma lista em ambas as direções.
Ele estende a Iterator
interface.
A List
interface fornece um listIterator()
método que retorna uma instância da ListIterator
interface.
Métodos de ListIterator
A ListIterator
interface fornece métodos que podem ser usados para realizar várias operações nos elementos de uma lista.
hasNext()
- retorna verdadeiro se existir um elemento na listanext()
- retorna o próximo elemento da listanextIndex()
retorna o índice do elemento que onext()
método irá retornarprevious()
- retorna o elemento anterior da listapreviousIndex()
- retorna o índice do elemento que oprevious()
método retornaráremove()
- remove o elemento retornado pornext()
ouprevious()
set()
- substitui o elemento retornado pornext()
ouprevious()
pelo elemento especificado
Exemplo 1: Implementação de ListIterator
No exemplo abaixo, implementamos os métodos next()
, nextIndex()
e hasNext()
da ListIterator
interface em uma lista de array.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); // Using the next() method int number1 = iterate.next(); System.out.println("Next Element: " + number1); // Using the nextIndex() int index1 = iterate.nextIndex(); System.out.println("Position of Next Element: " + index1); // Using the hasNext() method System.out.println("Is there any next element? " + iterate.hasNext()); ) )
Resultado
ArrayList: (1, 3, 2) Próximo elemento: 1 Posição do próximo elemento: 1 Existe algum próximo elemento? verdade
Exemplo 2: Implementação de ListIterator
No exemplo abaixo, implementamos os métodos previous()
e previousIndex()
da ListIterator
interface em uma lista de array.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); iterate.next(); iterate.next(); // Using the previous() method int number1 = iterate.previous(); System.out.println("Previous Element: " + number1); // Using the previousIndex() int index1 = iterate.previousIndex(); System.out.println("Position of the Previous element: " + index1); ) )
Resultado
ArrayList: (1, 3, 2) Elemento anterior: 3 Posição do elemento anterior: 0
No exemplo acima, inicialmente, a instância de Iterator
era antes de 1. Como não havia nenhum elemento antes de 1, chamar o previous()
método lançará uma exceção.
Em seguida, usamos os next()
métodos 2 vezes. Agora a Iterator
instância ficará entre 3 e 2.
Portanto, o previous()
método retorna 3.