Diferença entre Enumeração e Iterator

Anonim

Enumeração vs Iterator

Existem muitas estruturas de dados que atuam como coleções em Java, como vetores, tabelas Hash e classes que implementam Java Framework de Coleções (ou seja, HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap e LinkedHashSet). Existem inúmeras maneiras de iterar através dos elementos individuais dos objetos em Java. O Java fornece duas interfaces para facilitar esta tarefa. Enumeration e Iterator são duas das interfaces encontradas no java. pacote de utilidade que fornece funcionalidade para enumerar através de seqüências ou objetos com um conjunto de itens. Enumerator 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?

Enumeração é uma interface pública em Java, introduzida no JDK 1. 0, que fornece a capacidade de enumerar através de seqüências de elementos. É encontrado sob java. Pacote de utilidade. Quando a interface de Enumeração é implementada por um objeto, esse objeto pode gerar uma seqüê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 nextElement () retorna o próximo elemento na seqüência (se houver pelo menos mais um para ir). Em outras palavras, ao chamar nextElement () sucessivamente, o programador pode acessar os elementos individuais da série. Por exemplo, para imprimir todos os elementos no Vector v1 usando Enumerator, o seguinte trecho de código pode ser usado.

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

Enquanto (e. HasMoreLements ()) {

Sistema. Fora. println (e. nextElement ());

}

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

O que é Iterator?

Iterator é uma interface pública em Java. pacote de utilidade, que permite iterar através de elementos dos objetos de coleções que implementam a estrutura de Coleções (como ArrayList, LinkedList, etc.). Isso foi introduzido no JDK 1. 2 e substituiu o Enumerator no Framework de Coleções Java. Iterator tem três métodos. O método hasNext () testa se existem 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 Iterator, o seguinte fragmento de código pode ser usado.

Iterator i = v1. elementos ();

Enquanto (i. HasNext ()) {

Sistema. Fora. println (e. próximo ());

}

Qual a diferença entre Enumeração e Iterator?

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