Diferença entre enumeração e iterador

Diferença entre enumeração e iterador
Diferença entre enumeração e iterador

Vídeo: Diferença entre enumeração e iterador

Vídeo: Diferença entre enumeração e iterador
Vídeo: O QUE É ALEGORIA? 2024, Julho
Anonim

Enumeração vs Iterador

Existem muitas estruturas de dados que atuam como coleções em Java, como Vetores, tabelas Hash e classes que implementam o Java Collections Framework (ou seja, HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap e LinkedHashSet). Existem várias maneiras de iterar pelos elementos individuais dos objetos em Java. Java fornece duas interfaces para facilitar essa tarefa. Enumeration e Iterator são duas das interfaces encontradas no pacote java.util que fornecem funcionalidade para enumerar por meio de sequências ou objetos com um conjunto de itens. O enumerador foi introduzido no JDK 1.0 e Iterator que foi introduzido no JDK 1.2 praticamente duplica a funcionalidade do Enumerator (dentro do Collections Framework).

O que é Enumeração?

Enumeration é uma interface pública em Java, introduzida no JDK 1.0, que fornece a capacidade de enumerar por meio de sequências de elementos. Ele é encontrado no pacote java.util. Quando a interface Enumeration é implementada por um objeto, esse objeto pode gerar uma sequência de elementos. A interface de enumeração tem dois métodos. O método hasMoreElements() irá testar se esta enumeração contém mais elementos e o método nextElement() retorna o próximo elemento na sequência (se houver pelo menos mais um para ir). Em outras palavras, chamando nextElement() sucessivamente, o programador pode acessar os elementos individuais da série. Por exemplo, para imprimir todos os elementos em Vector v1 usando Enumerator, o seguinte trecho de código pode ser usado.

Enumeração e=v1.elements();

While(e.hasMoreLements()){

System.out.println(e.nextElement());

}

Enumerator também pode ser usado para definir o fluxo de entrada para os objetos SequenceInputStream.

O que é Iterador?

Iterator é uma interface pública no pacote Java.util, que permite iterar através de elementos dos objetos de coleções que implementam o framework Collections (como ArrayList, LinkedList, etc.). Isso foi introduzido no JDK 1.2 e substituiu o Enumerator no Java Collections Framework. Iterator tem três métodos. O método hasNext() testa se há elementos restantes na coleção e o método next() retorna o próximo elemento da série. O método remove() pode ser usado para remover o elemento atual da coleção subjacente. Por exemplo, para imprimir todos os elementos no Vector v1 usando o Iterator, o seguinte trecho de código pode ser usado.

Iterator i=v1.elements();

While(i.hasNext()){

System.out.println(e.next());

}

Qual é a diferença entre Enumeração e Iterador?

Embora, Enumeration e Iterator sejam duas das interfaces encontradas no pacote java.util, que permitem iterar/enumerar através de elementos de uma série, elas têm suas diferenças. Na verdade, o Iterator, que foi introduzido após a Enumeration, substitui a Enumeration na estrutura Java Collections. Ao contrário da Enumeração, o Iterator é à prova de falhas. Isso significa que modificações simultâneas (na coleção subjacente) não são permitidas quando o Iterator é usado. Isso é muito útil em ambientes multithread onde sempre há o risco de modificações simultâneas. No caso de uma modificação simultânea, o objeto Iterator lançará um ConcurrentModificationException. Iterator tem nomes de métodos mais curtos em comparação com Enumerator. Além disso, o iterator tem a funcionalidade adicional de excluir elementos durante a iteração (o que não é possível usando o Enumerator). Portanto, se houver necessidade de remover elementos da coleção, Iterator é a única opção que pode ser considerada.

Recomendado: