Differenza tra enumerazione e iteratore

Differenza tra enumerazione e iteratore
Differenza tra enumerazione e iteratore

Video: Differenza tra enumerazione e iteratore

Video: Differenza tra enumerazione e iteratore
Video: ACADEMY FPA - La modellazione dei processi per il miglioramento dei livelli di servizio 2024, Luglio
Anonim

Enumerazione vs Iteratore

Ci sono molte strutture di dati che fungono da raccolte in Java come vettori, tabelle Hash e classi che implementano Java Collections Framework (ad esempio HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap e LinkedHashSet). Esistono numerosi modi per scorrere i singoli elementi degli oggetti in Java. Java fornisce due interfacce per semplificare questa attività. Enumeration e Iterator sono due delle interfacce presenti nel pacchetto java.util che forniscono funzionalità per enumerare sequenze o oggetti con un insieme di elementi. Enumeratore è stato introdotto in JDK 1.0 e Iterator che è stato introdotto in JDK 1.2 duplica virtualmente la funzionalità di Enumerator (all'interno di Collections Framework).

Cos'è l'enumerazione?

Enumeration è un'interfaccia pubblica in Java, introdotta in JDK 1.0, che offre la possibilità di enumerare attraverso sequenze di elementi. Si trova nel pacchetto java.util. Quando l'interfaccia di enumerazione è implementata da un oggetto, quell'oggetto può generare una sequenza di elementi. L'interfaccia di enumerazione ha due metodi. Il metodo hasMoreElements() verificherà se questa enumerazione contiene più elementi e nextElement() restituisce l'elemento successivo nella sequenza (se ce n'è almeno uno in più). In altre parole, chiamando nextElement() in successione, il programmatore può accedere ai singoli elementi della serie. Ad esempio, per stampare tutti gli elementi in Vector v1 utilizzando Enumerator, è possibile utilizzare il seguente frammento di codice.

Elencazione e=v1.elements();

While(e.hasMoreLements()){

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

}

Enumerator può essere utilizzato anche per definire il flusso di input per gli oggetti SequenceInputStream.

Cos'è Iteratore?

Iterator è un'interfaccia pubblica nel pacchetto Java.util, che consente di scorrere gli elementi degli oggetti delle raccolte che implementano il framework delle raccolte (come ArrayList, LinkedList, ecc.). Questo è stato introdotto in JDK 1.2 e ha sostituito Enumerator all'interno di Java Collections Framework. Iteratore ha tre metodi. Il metodo hasNext() verifica se ci sono elementi rimanenti nella raccolta e il metodo next() restituisce l'elemento successivo nella serie. Il metodo remove() può essere utilizzato per rimuovere l'elemento corrente dalla raccolta sottostante. Ad esempio, per stampare tutti gli elementi in Vector v1 utilizzando Iterator, è possibile utilizzare il seguente frammento di codice.

Iteratore i=v1.elements();

Mentre(i.hasNext()){

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

}

Qual è la differenza tra Enumerazione e Iteratore?

Anche se Enumeration e Iterator sono due delle interfacce presenti nel pacchetto java.util, che consentono di iterare/enumerare gli elementi di una serie, hanno le loro differenze. In re altà, Iterator, che è stato introdotto dopo l'enumerazione, sostituisce l'enumerazione all'interno del framework Java Collections. A differenza dell'enumerazione, Iterator è a prova di errore. Ciò significa che le modifiche simultanee (alla raccolta sottostante) non sono consentite quando viene utilizzato Iterator. Questo è molto utile in ambienti multi-thread dove c'è sempre il rischio di modifiche simultanee. In caso di una modifica simultanea, l'oggetto Iterator genererà un'eccezione ConcurrentModificationException. Iterator ha nomi di metodi più brevi rispetto a Enumerator. Inoltre, iterator ha la funzionalità aggiuntiva di eliminare elementi durante l'iterazione (cosa non possibile utilizzando Enumerator). Quindi, se è necessario rimuovere elementi dalla raccolta, Iterator è l'unica opzione che può essere considerata.

Consigliato: