Forskjellen Mellom Oppføring Og Iterator

Forskjellen Mellom Oppføring Og Iterator
Forskjellen Mellom Oppføring Og Iterator

Video: Forskjellen Mellom Oppføring Og Iterator

Video: Forskjellen Mellom Oppføring Og Iterator
Video: C+ Programming Language Tutorial | Iterators in C+ STL | GeeksforGeeks 2024, Kan
Anonim

Oppregning vs Iterator

Det er mange datastrukturer som fungerer som samlinger i Java, for eksempel vektorer, Hash-tabeller og klasser som implementerer Java Collections Framework (dvs. HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap og LinkedHashSet). Det er mange måter å gjenta gjennom de enkelte elementene i 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 opp 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 talt funksjonaliteten til Enumerator (innenfor Collections Framework).

Hva er oppregning?

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

Oppregning e = v1.elements ();

Mens (e.hasMoreLements ()) {

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

}

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

Hva er Iterator?

Iterator er et offentlig grensesnitt i Java.util-pakken, som gjør det mulig å iterere gjennom elementer i samlingsobjektene som implementerer samlingens rammeverk (som ArrayList, LinkedList, etc.). Dette ble introdusert i JDK 1.2 og erstattet Enumerator innenfor Java Collections Framework. Iterator har tre metoder. Metoden hasNext () tester om det er gjenværende elementer i samlingen, og neste () -metoden returnerer neste element i serien. Fjern () -metoden kan brukes til å fjerne det nåværende 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 ();

Mens (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 pakken java.util, som tillater iterering / oppregning gjennom elementer i en serie, har de forskjellene. Egentlig erstatter Iterator, som ble introdusert etter Enumeration, Enumeration innenfor rammene for Java Collections. 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 miljøer med flere tråder der det alltid er fare for samtidig modifikasjon. I tilfelle en samtidig endring, vil Iterator-objektet kaste et ConcurrentModificationException. Iterator har kortere metodenavn sammenlignet med Enumerator. Dessuten,iterator har den ekstra funksjonaliteten til å slette elementer under iterasjonen (noe som ikke er mulig å bruke Enumerator). Så hvis det er behov for å fjerne elementer fra samlingen, er Iterator det eneste alternativet som kan vurderes.

Anbefalt: