Neste tutorial, aprenderemos sobre a interface do Java Iterator com a ajuda de um exemplo.
A Iterator
interface do framework de coleções Java nos permite acessar os elementos de uma coleção. Ele tem uma subinterface ListIterator
.
Todas as coleções Java incluem um iterator()
método. Este método retorna uma instância do iterador usado para iterar sobre os elementos das coleções.
Métodos de Iterador
A Iterator
interface fornece 4 métodos que podem ser usados para realizar várias operações em elementos de coleções.
hasNext()
- retornatrue
se existe um elemento na coleçãonext()
- retorna o próximo elemento da coleçãoremove()
- remove o último elemento retornado pelonext()
forEachRemaining()
- executa a ação especificada para cada elemento restante da coleção
Exemplo: Implementação do Iterator
No exemplo abaixo, implementamos os métodos hasNext()
, next(),
remove()
e forEachRemining()
da Iterator
interface em uma lista de array.
import java.util.ArrayList; import java.util.Iterator; 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 Iterator Iterator iterate = numbers.iterator(); // Using the next() method int number = iterate.next(); System.out.println("Accessed Element: " + number); // Using the remove() method iterate.remove(); System.out.println("Removed Element: " + number); System.out.print("Updated ArrayList: "); // Using the hasNext() method while(iterate.hasNext()) ( // Using the forEachRemaining() method iterate.forEachRemaining((value) -> System.out.print(value + ", ")); ) ) )
Resultado
ArrayList: (1, 3, 2) Elemento acessado: 1 Elemento removido: 1 ArrayList atualizado: 3, 2,
No exemplo acima, observe a declaração:
iterate.forEachRemaining((value) -> System.put.print(value + ", "));
Aqui, passamos a expressão lambda como um argumento do forEachRemaining()
método.
Agora, o método imprimirá todos os elementos restantes da lista de arrays.