Forskjellen mellom oppregning og iterator

Forskjellen mellom oppregning og iterator
Forskjellen mellom oppregning og iterator

Video: Forskjellen mellom oppregning og iterator

Video: Forskjellen mellom oppregning og iterator
Video: Den systemiske og social-konstruktionistiske metafor versus den narrative metafor 2024, Juli
Anonim

Enumeration vs Iterator

Det er mange datastrukturer som fungerer som samlinger i Java, for eksempel Vectors, Hash-tabeller og klasser som implementerer Java Collections Framework (dvs. HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap og LinkedHashSet). Det er mange måter å iterere gjennom de individuelle elementene til objektene i Java. Java har to grensesnitt for å gjøre denne oppgaven enklere. Enumeration og Iterator er to av grensesnittene som finnes i java.util-pakken som gir funksjonalitet for å telle gjennom sekvenser eller objekter med et sett med elementer. Enumerator ble introdusert i JDK 1.0 og Iterator som ble introdusert i JDK 1.2 dupliserer praktisk t alt funksjonaliteten til Enumerator (innenfor samlingsrammeverket).

Hva er oppregning?

Enumeration er et offentlig grensesnitt i Java, introdusert i JDK 1.0, som gir muligheten til å telle gjennom sekvenser av elementer. Det finnes under java.util-pakken. Når Enumeration-grensesnittet er implementert av et objekt, kan det objektet generere en sekvens av elementer. Oppregningsgrensesnittet har to metoder. Metoden hasMoreElements() vil teste om denne oppregningen inneholder flere elementer, og nextElement() returnerer det neste elementet i sekvensen (hvis det er minst ett til igjen). Med andre ord, ved å kalle nextElement() suksessivt, kan programmereren få tilgang til de individuelle elementene i serien. For eksempel, for å skrive ut alle elementene i Vector v1 ved hjelp av Enumerator, kan følgende kodebit brukes.

Enumeration e=v1.elements();

While(e.hasMoreLements()){

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

}

Enumerator kan også brukes til å definere inndatastrømmen til SequenceInputStream-objektene.

Hva er Iterator?

Iterator er et offentlig grensesnitt i Java.util-pakken, som tillater iterasjon gjennom elementer i samlingsobjektene som implementerer samlingsrammeverket (som ArrayList, LinkedList, etc.). Dette ble introdusert i JDK 1.2 og erstattet Enumerator i Java Collections Framework. Iterator har tre metoder. Metoden hasNext() tester om det er gjenværende elementer i samlingen og next()-metoden returnerer det neste elementet i serien. Remove()-metoden kan brukes til å fjerne det gjeldende elementet fra den underliggende samlingen. For eksempel, for å skrive ut alle elementene i Vector v1 ved hjelp av Iterator, kan følgende kodebit brukes.

Iterator i=v1.elements();

While(i.hasNext()){

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

}

Hva er forskjellen mellom Enumeration og Iterator?

Selv om Enumeration og Iterator er to av grensesnittene som finnes i java.util-pakken, som tillater iterasjon/opptelling gjennom elementer i en serie, har de sine forskjeller. Faktisk erstatter Iterator, som ble introdusert etter Enumeration, Enumeration innenfor Java Collections-rammeverket. I motsetning til Enumeration, er Iterator feilsikker. Dette betyr at samtidige modifikasjoner (til den underliggende samlingen) ikke er tillatt når Iterator brukes. Dette er veldig nyttig i flertrådede miljøer der det alltid er en risiko for samtidige modifikasjoner. I tilfelle en samtidig modifikasjon, vil Iterator-objektet kaste et ConcurrentModificationException. Iterator har kortere metodenavn sammenlignet med Enumerator. Videre har iterator tilleggsfunksjonaliteten til å slette elementer under iterasjonen (noe som ikke er mulig med Enumerator). Så hvis det er behov for å fjerne elementer fra samlingen, er Iterator det eneste alternativet som kan vurderes.

Anbefalt: