logo

Iterador em Java

Em Java, um Iterador é um dos cursores Java. Iterador Java é uma interface praticada para iterar sobre uma coleção inteira de componentes de objetos Java, um por um. Seu uso é gratuito na linguagem de programação Java desde a estrutura Java 1.2 Collection. Pertence ao pacote java.util.

Embora o Java Iterator tenha sido introduzido no Java 1.2, ele ainda não é a ferramenta mais antiga disponível para percorrer os elementos do objeto Collection. O Iterador mais antigo na linguagem de programação Java é o Iterador anterior ao Enumerador. A interface Java Iterator sucede ao iterador enumerador que foi praticado no início para percorrer algumas coleções acessíveis como ArrayLists.

O Iterador Java também é conhecido como cursor universal de Java, pois é apropriado para todas as classes da estrutura Collection. O Java Iterator também auxilia em operações como READ e REMOVE. Quando comparamos a interface do Java Iterator com a interface do iterador de enumeração, podemos dizer que os nomes dos métodos disponíveis no Java Iterator são mais precisos e simples de usar.

Vantagens do Iterador Java

O iterador em Java tornou-se muito comum devido às suas inúmeras vantagens. As vantagens do Java Iterator são apresentadas a seguir -

  • O usuário pode aplicar esses iteradores a qualquer uma das classes da estrutura Collection.
  • No Java Iterator, podemos usar as operações de leitura e remoção.
  • Se um usuário estiver trabalhando com um loop for, ele não poderá modernizar (adicionar/remover) a Coleção, enquanto, se usar o Iterador Java, poderá simplesmente atualizar a Coleção.
  • O Java Iterator é considerado o Cursor Universal para a API Collection.
  • Os nomes dos métodos no Java Iterator são muito fáceis e simples de usar.

Desvantagens do Iterador Java

Apesar das inúmeras vantagens, o Java Iterator também apresenta várias desvantagens. As desvantagens do Java Iterator são fornecidas abaixo -

  • O Java Iterator preserva apenas a iteração na direção direta. Em palavras simples, o Java Iterator é um Iterador unidirecional.
  • A substituição e extensão de um novo componente não são aprovadas pelo Java Iterator.
  • Nas operações CRUD, o Java Iterator não contém várias operações como CREATE e UPDATE.
  • Em comparação com o Spliterator, o Java Iterator não suporta a passagem de elementos no padrão paralelo, o que implica que o Java Iterator suporta apenas a iteração sequencial.
  • Em comparação com o Spliterator, o Java Iterator não oferece suporte a uma execução mais confiável para percorrer o grande volume de dados.

Como usar o Iterador Java?

Quando um usuário precisa usar o Java Iterator, é obrigatório que ele crie uma instância da interface do Iterator a partir da coleção de objetos que deseja percorrer. Depois disso, o Iterador recebido mantém o rastro dos componentes da coleção subjacente para garantir que o usuário percorrerá cada um dos elementos da coleção de objetos.

Se o usuário modificar a coleção subjacente enquanto percorre um Iterador que leva a essa coleção, o Iterador normalmente reconhecerá isso e lançará uma exceção na próxima vez em que o usuário tentar obter o próximo componente do Iterador.

Métodos Iteradores Java

A figura a seguir exibe perfeitamente o diagrama de classes da interface Java Iterator. Ele contém um total de quatro métodos que são:

  • temPróximo()
  • próximo()
  • remover()
  • forEachRemaining()

O forEachRemaining() O método foi adicionado no Java 8. Vamos discutir cada método em detalhes.

    booleano hasNext(): O método não aceita nenhum parâmetro. Ele retorna verdadeiro se houver mais elementos restantes na iteração. Se não houver mais elementos, retornará falso.
    Se não houver mais elementos na iteração, não há necessidade de chamar o método next(). Em palavras simples, podemos dizer que o método é usado para determinar se o método next() deve ser chamado ou não.E próximo():É semelhante ao método hasNext(). Também não aceita nenhum parâmetro. Ele retorna E, ou seja, o próximo elemento na travessia. Se a iteração ou coleção de objetos não tiver mais elementos para iterar, ela lançará NoSuchElementException.remoção nula padrão():Este método também não requer nenhum parâmetro. Não há tipo de retorno deste método. A principal função deste método é remover o último elemento retornado pelo iterador que percorre a coleção subjacente. O método remove () pode ser solicitado apenas uma vez na próxima chamada do método (). Se o iterador não suportar a operação de remoção, ele lançará UnSupportedOperationException. Ele também lança IllegalStateException se o próximo método ainda não for chamado.padrão void forEachRemaining (ação do consumidor):É o único método do Java Iterator que aceita um parâmetro. Aceita ação como parâmetro. A ação nada mais é do que aquilo que deve ser executado. Não há tipo de retorno do método. Este método executa a operação particularizada em todos os componentes esquerdos da coleção até que todos os componentes sejam consumidos ou a ação gere uma exceção. Exceções lançadas por ação são entregues ao chamador. Se a ação for nula, ela lançará uma NullPointerException.

Exemplo de Iterador Java

Agora é hora de executar um programa Java para ilustrar a vantagem da interface Java Iterator. O código abaixo produz um ArrayList de nomes de cidades. Em seguida, inicializamos um iterador aplicando o método iterator() do ArrayList. Depois disso, a lista é percorrida para representar cada elemento.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Saída:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Pontos para lembrar

  • O Java Iterator é uma interface adicionada na linguagem de programação Java na estrutura Java 1.2 Collection. Pertence ao pacote java.util.
  • É um dos Cursores Java praticados para percorrer os objetos da estrutura de coleção.
  • O Java Iterator é usado para iterar os componentes do objeto de coleção um por um.
  • O Java Iterator também é conhecido como cursor universal de Java, pois é apropriado para todas as classes da estrutura Collection.
  • O Java Iterator também oferece suporte a operações como READ e REMOVE.
  • Os nomes dos métodos da classe Iterator são muito simples e fáceis de usar em comparação com os nomes dos métodos do Enumeration Iterator.