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

Iterador vs EnumeraçãoOs três cursores que são usados para acessar os elementos de qualquer coleção, um por um, são Enumeração, Iterator e ListIterator. Embora, Iterator e Enumerator são feitos para realizar o mesmo trabalho. Ainda assim, eles são distintos um do outro em um sentido que a enumeração tem acesso apenas para leitura aos elementos da coleção. Do outro lado, Iterator pode ler, bem como remover os elementos da coleção.

a diferença importante entre o iterador e a enumeração é que a enumeração não pode ser aplicada nas classes de Coleta que só é aplicável nas classes legadas. Por outro lado, o iterador é aplicável às classes de coleção, portanto, é referido como um cursor universal. Vamos aprender um pouco mais de diferença entre Iterator e enumeração com a ajuda do Gráfico de comparação mostrado abaixo.

teor: Iterador Vs Enumeração

  1. Gráfico de Comparação
  2. Definição
  3. principais Diferenças
  4. Conclusão

Gráfico de Comparação

Base de Comparação Iterator Enumeração
Básico Iterador é um universal cursor é aplicável para todas as classes de coleção. Enumeration is not a universal cursor as it applies only to legacy classes.
Access usando o iterador, pode ler e remover os elementos da colecção. usando a enumeração só pode ler os elementos da colecção.
Métodos de public boolean hasnext();
objetos públicos next();
public void remove();
public boolean hasMoreElements();
público objeto nextElement();
Limitação Iterador é unidireccional para a frente o acesso do cursor.
Iterator não pode substituir nenhum elemento da coleção.
Iterator não pode adicionar nenhum elemento novo na coleção.
Enumeration is unidirectional forward access cursor.
a enumeração suporta apenas classes legadas.
Enumeration has only read-only access to the elements in a collection.
superar para superar as limitações do Iterator você deve optar por ListIterator. para superar as limitações da enumeração você deve optar por Iterator.

a definição de Interface Iterator

Iterator é uma interface no framework collection. Como 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 a um. Usando Iterator, você pode recuperar os elementos da coleção e, se você quiser, também pode remover os elementos da coleção. O objeto do Iterator pode ser criado como indicado abaixo.

Iterator itr = Collc.iterator();

a variável itr é um objeto de iterador. Collc é qualquer objeto de coleção que deve ser cíclico ou iterado usando o objeto (itr) do iterador. O iterator() é o método usado para criar um objeto iterador. Existem três métodos no iterador como mostrado abaixo.

public boolean hasnext();public Object next();public void remove();

o primeiro método hasnext () verifica se a coleção tem algum elemento nela ou não. Se a coleção tem os elementos, ela retornará verdadeiro senão retornará falso. O segundo método a seguir () é usado para recuperar o próximo elemento da coleção. O terceiro método remove () é usado para excluir os elementos da coleção.

Iterator pode viajar em uma coleção apenas na direção da frente que não pode se mover para trás durante a viagem. 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 qualquer elemento novo na coleção. Para superar essas limitações você pode ir para a interface ListIterator.

definição de interface de enumeração

enumeração é a interface aplicável às classes antigas, e não pode ser aplicada a qualquer classe de recolha. Portanto, não é um cursor universal. A enumeração recupera o elemento (objeto) da coleção um a um. Enumeration object has read-only access to the elements of the collection. O objeto de enumeração não pode alterar nenhum elemento da coleção. Vamos ver como criar objeto de enumeração, dar uma olhada.

Enumeration er = Vect.elements();

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

public boolean hasMoreElements();public nextElement();

o primeiro método é usado para verificar o estado da coleção se ela tem os elementos nela ou está vazia. Se a coleção tem os elementos o método hasMoreElements () retorne true else return false. O segundo método nextElement() é usado para recuperar os elementos da coleção um por um.

When traversing is complete the nextElement () method josses Nouchelementexception. A enumeração objeto viaja apenas na direção da frente. Não pode adicionar, remover ou substituir qualquer elemento da colecção. Para superar essas limitações da enumeração, você deve optar por Iterator.

diferenças de chave entre Iterator e enumeração em Java

  1. a principal diferença entre Iterator e enumeração é que 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 de classe legada.
  2. o objeto de enumeração tem apenas acesso apenas para 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 de iterador um para verificar o estado da coleção e um para recuperar os elementos da coleção. In addition to Enumeration methods Iterator has one more method to remove the elements from the collection.
  4. as limitações da enumeração são que é cursor unidirecional para a frente, tem acesso apenas para leitura, e pode ser aplicado às classes de coleção. Por outro lado, Iterator não pode substituir ou adicionar qualquer elemento novo na coleção e, como enumeração, seu cursor também encaminha unidirecional.
  5. a limitação da enumeração é resolvida pelo iterador e as limitações do iterador são resolvidas pelo Listiterador.

Conclusão

Hoje em dia, Iterator e ListItertaor cursor são usadas universal cursor e são muito mais eficientes do que a Enumeração.

Deixe uma resposta

O seu endereço de email não será publicado.