Diferença entre Iterador e Interface de Enumeração em Java

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 10 Poderia 2024
Anonim
Diferença entre Iterador e Interface de Enumeração em Java - Tecnologia
Diferença entre Iterador e Interface de Enumeração em Java - Tecnologia

Contente


Os três cursores usados ​​para acessar os elementos de qualquer coleção, um por um, são Enumeração, Iterador e ListIterator. No entanto, Iterator e Enumerator são destinados a executar o mesmo trabalho. Ainda assim, eles são distintos um do outro, no sentido de que a Enumeração tem acesso somente leitura aos elementos da coleção. Por outro lado, o Iterator pode ler e remover os elementos da coleção. A diferença importante entre o iterador e a enumeração é que o Enumeração não pode ser aplicado nas classes de coleção, é aplicável apenas nas classes herdadas. Por outro lado, o Iterador é aplicável às classes de coleção, portanto, é referido como um cursor universal. Vamos aprender mais algumas diferenças entre Iterador e Enumeração com a ajuda do gráfico de comparação mostrado abaixo.


  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoIterador Enumeração
BasicO iterador é um cursor universal, pois é aplicável a todas as classes de coleção.A enumeração não é um cursor universal, pois se aplica apenas a classes herdadas.
AcessoUsando o Iterator, você pode ler e remover os elementos da coleção.Usando Enumeração, você pode ler apenas os elementos da coleção.
Métodoshasnext público booleano ();
objetos públicos next ();
remoção de vazio público ();
público booleano hasMoreElements ();
objeto público nextElement ();
LimitaçãoO iterador é um cursor de acesso direto unidirecional.
O iterador não pode substituir nenhum elemento da coleção.
O Iterator não pode adicionar nenhum novo elemento na coleção.
A enumeração é um cursor de acesso direto unidirecional.
A enumeração suporta apenas classes herdadas.
A enumeração possui apenas acesso somente leitura aos elementos em uma coleção.
SuperarPara superar as limitações do Iterator, você deve optar pelo ListIterator.Para superar as limitações da Enumeração, você deve optar pelo Iterator.


Definição da Interface Iteradora

Iterador é uma interface na estrutura de coleção. Como o Iterator é aplicável a todas as classes de coleção, é referido como um cursor universal. É o cursor usado para acessar os elementos da coleção, um por um. Usando o Iterator, você pode recuperar os elementos da coleção e, se desejar, também pode remover os elementos da coleção. O objeto do Iterator pode ser criado como indicado abaixo.

Iterador itr = Collc.iterator ();

A variável itr é um objeto do iterador. Collc é qualquer objeto de coleção que deve ser repetido ou repetido usando o objeto (itr) do Iterator. o iterador () é o método usado para criar um objeto iterador. Existem três métodos no iterador, como mostrado abaixo.

hasnext público booleano (); Public object next (); remoção de vazio público ();

O primeiro método hasnext () verifica se a coleção possui algum elemento ou não. Se a coleção tiver os elementos, ela retornará true, caso contrário, retornará false. O segundo método Próximo() é usado para recuperar o próximo elemento na coleção. O terceiro método remover() é usado para excluir os elementos da coleção.

O Iterator pode viajar em uma coleção apenas na direção para frente e não pode voltar atrás enquanto viaja. O Iterator pode remover o elemento da coleção, mas não tem a capacidade de substituir qualquer elemento existente por um novo elemento, nem pode adicionar nenhum novo elemento na coleção. Para superar essas limitações, você pode ir para a interface ListIterator.

Definição da interface de enumeração

Enumeração é a interface aplicável ao legado classes e não pode ser aplicado a nenhuma classe de coleção. Portanto, não é um cursor universal. A enumeração recupera o elemento (objeto) da coleção, um por um. O objeto de enumeração possui acesso somente leitura aos elementos da coleção. O objeto de enumeração não pode alterar nenhum elemento da coleção. Vamos ver como criar objeto de enumeração, dê uma olhada.

Enumeração er = Vect.elements ();

A variável er é um objeto de enumeração. o Vect é o objeto da classe vetorial que deve ser percorrido pelo objeto (er) da enumeração. O método elemento() é usado para criar um objeto de enumeração. Existem apenas dois métodos na interface de enumeração, como mostrado abaixo.

público booleano hasMoreElements (); public nextElement ();

O primeiro método hasMoreElements () é usado para verificar o status da coleção se ela possui os elementos ou está vazia. Se a coleção tiver os elementos, o método hasMoreElements () retornará true, caso contrário, retornará false. O segundo método nextElement () é usado para recuperar os elementos da coleção, um por um. Quando a travessia é concluída, o método nextElement () lança NoSuchElementException. O objeto de enumeração viaja apenas na direção direta. Não pode adicionar, remover ou substituir nenhum elemento da coleção. Para superar essas limitações da enumeração, você deve optar pelo Iterator.

  1. A principal diferença entre Iterator e Enumeração é que o Iterator é um cursor universal, pode ser usado para iterar qualquer objeto de coleção. Por outro lado, a Enumeração é usada apenas para atravessar objetos da classe herdada.
  2. O objeto de enumeração possui apenas acesso somente leitura aos elementos da coleção. No entanto, o objeto do Iterator pode ler e remover os elementos da coleção.
  3. Existem dois métodos do iterador, um para verificar o status da coleção e outro para recuperar os elementos da coleção. Além dos métodos de enumeração, o Iterator possui mais um método para remover os elementos da coleção.
  4. Limitações da enumeração: é o cursor unidirecional para a frente, possui acesso somente leitura e pode ser aplicado às classes de coleção. Por outro lado, o Iterator não pode substituir ou adicionar nenhum novo elemento na coleção e, como Enumeração, também é um cursor unidirecional para a frente.
  5. A limitação da enumeração é resolvida pelo Iterator e as limitações do Iterator são resolvidas pelo ListIterator.

Conclusão:

Atualmente, o cursor Iterator e o ListItertaor são usados, pois são o cursor universal e são muito eficientes que a Enumeração.