Pular para o conteúdo principal
Documentos
Palavras-chave JavaMatrizes JavaProgramação orientada a objetos em JavaManuseio de arquivos JavaIntrodução ao JavaNoções básicas da linguagem Java

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(): Retorna true 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ós hasNext() para garantir que haja um próximo elemento.
    E next();
  • remove(): Remove o último elemento retornado pelo método next() da coleção subjacente. Esse método é opcional e pode lançar UnsupportedOperationException 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 de next(): Sempre verifique hasNext() antes de chamar next() para evitar NoSuchElementException.
  • Evite ConcurrentModificationException: Não modifique a coleção diretamente ao iterar sobre ela. Use o método remove() do site Iterator 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 evitar UnsupportedOperationException.
  • 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.
Comece a aprender de graça