Java Iterator
O Iterator
em Java é uma interface que oferece uma maneira de percorrer uma coleção de objetos, como listas ou conjuntos, um elemento de cada vez. Ele faz parte da estrutura de coleções do Java e pode ser encontrado no pacote java.util
. A interface Iterator
é usada para acessar elementos de uma coleção sequencialmente sem expor a estrutura subjacente da coleção.
Principais métodos
A interface Iterator
oferece três métodos principais:
hasNext()
: Retornatrue
se a iteração tiver mais elementos. Ele permite que você verifique se há mais elementos para iterar.boolean hasNext();
next()
: Retorna o próximo elemento na iteração. Ele deve ser chamado apóshasNext()
para garantir que haja um próximo elemento.E next();
remove()
: Remove o último elemento retornado pelo métodonext()
da coleção subjacente. Esse método é opcional e pode lançarUnsupportedOperationException
se a coleção não for compatível com a remoção.void remove();
Exemplos
Exemplo 1: Uso básico com lista
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
}
}
Neste exemplo, um ArrayList
de cadeias de caracteres é criado e preenchido com nomes de frutas. Um Iterator
é obtido da lista para percorrer e imprimir cada fruta.
Exemplo 2: Remoção de elementos
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RemoveExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
if ("Banana".equals(fruit)) {
iterator.remove();
}
}
System.out.println(list);
}
}
Este exemplo demonstra como remover elementos de uma lista usando um Iterator
. O elemento "Banana" é removido durante a iteração.
Dicas e práticas recomendadas
- Use
hasNext()
antes denext()
: Sempre verifiquehasNext()
antes de chamarnext()
para evitarNoSuchElementException
. - Evite ConcurrentModificationException: Não modifique a coleção diretamente ao iterar sobre ela. Use o método
remove()
do siteIterator
para remover os elementos com segurança. - Use o For-Loop aprimorado sempre que possível: Para iterações simples em que a remoção não é necessária, o for-loop aprimorado do Java (
for-each
) pode ser mais conciso e legível. - Entenda as operações sem suporte: Nem todas as coleções suportam a operação
remove()
. Esteja ciente dos recursos da coleção para evitarUnsupportedOperationException
. - Considere alternativas: Para necessidades de iteração mais complexas, considere o uso do site
ListIterator
, que oferece recursos adicionais, como iteração bidirecional e modificação de elementos.
Learn Java Essentials
Desenvolva suas habilidades em Java desde o início e domine os conceitos de programação.