English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Iterator e Enumeration sono cursori utilizzati per esplorare e accedere agli elementi della raccolta. Entrambi appartengono al framework di raccolta. L'enumerazione è stata aggiunta agli Iterator del framework di raccolta nelle versioni JDK1.0 e JDK1.2.
L'enumerazione non può modificare la struttura della raccolta, poiché ha accesso in sola lettura agli elementi della raccolta. Ha i seguenti metodi:
* hasMoreElements()
* nextElement()
D'altra parte, l'iteratore può leggere e eliminare gli elementi della raccolta. Ha i seguenti metodi-
*hasNext()
*nex()
* remove()
Numero | Chiave | Iteratore | Enumerazione |
---|---|---|---|
1 | Base | In Iterator, possiamo leggere e eliminare gli elementi durante la scansione degli elementi della raccolta. | Utilizzando l'enumerazione, possiamo leggere gli elementi solo durante la scansione degli elementi della raccolta. |
2. | Accesso | Può essere utilizzato con qualsiasi classe del framework di raccolta. | Può essere utilizzato solo con le vecchie classi del framework di raccolta, come Vector e HashTable. |
3. | Fallimento-fallimento e fallimento-sicurezza | Qualsiasi modifica alla collezione, ad esempio la rimozione di un elemento dalla collezione durante l'iterazione thread, lancia l'eccezione di modifica concorrente. | L'enumerazione è essenzialmente sicura da故障. Non lancia l'eccezione di modifica concorrente |
4. | Limitazioni | È possibile eseguire solo iterazioni in senso ascendente | Non è possibile eseguire operazioni di rimozione utilizzando l'enumerazione. |
5, | Metodo | Ha i seguenti metodi - * hasNext() | Ha i seguenti metodi - * hasMoreElements() * nextElement() |
class EnumerationExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList(new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Enumeration e = v.elements(); while (e.hasMoreElements()) { String s = (String) e.nextElement(); if (s.equals(name)) { v.remove(name); } } //Mostra i nomi System.out.println("I nomi sono:"); e = v.elements(); while (e.hasMoreElements()) { //Stampa gli elementi System.out.println(e.nextElement()); } } }
class IteratorExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList(new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Iterator i = v.iterator(); while (i.hasNext()) { String s = (String) i.next(); if (s.equals(name)) { i.remove(); } } //Mostra il nome System.out.println("I nomi sono:"); i = v.iterator(); while (i.hasNext()) { System.out.println(i.next()); } } }