Skillnaden Mellan Uppräkning Och Itterator

Skillnaden Mellan Uppräkning Och Itterator
Skillnaden Mellan Uppräkning Och Itterator

Video: Skillnaden Mellan Uppräkning Och Itterator

Video: Skillnaden Mellan Uppräkning Och Itterator
Video: Section 1: More Comfortable 2024, April
Anonim

Uppräkning vs Iterator

Det finns många datastrukturer som fungerar som samlingar i Java, såsom vektorer, Hash-tabeller och klasser som implementerar Java Collections Framework (t.ex. HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap och LinkedHashSet). Det finns många sätt att itera igenom de enskilda elementen i objekten i Java. Java har två gränssnitt för att göra denna uppgift enklare. Uppräkning och Iterator är två av gränssnitten som finns i paketet java.util som ger funktionalitet att räkna upp genom sekvenser eller objekt med en uppsättning objekt. Enumerator introducerades i JDK 1.0 och Iterator som introducerades i JDK 1.2 duplicerar praktiskt taget Enumerators funktionalitet (inom Collections Framework).

Vad är uppräkning?

Uppräkning är ett offentligt gränssnitt i Java, introducerat i JDK 1.0, vilket ger möjlighet att räkna upp genom sekvenser av element. Det finns under paketet java.util. När uppräkningsgränssnittet implementeras av ett objekt kan det objektet generera en sekvens av element. Uppräkningsgränssnittet har två metoder. Metoden hasMoreElements () kommer att testa om denna uppräkning innehåller fler element och nextElement () returnerar nästa element i sekvensen (om det finns åtminstone ytterligare ett). Med andra ord, genom att anropa nextElement () successivt, kan programmeraren komma åt de enskilda elementen i serien. För att till exempel skriva ut alla element i Vector v1 med Enumerator kan följande kodavsnitt användas.

Uppräkning e = v1.elements ();

While (e.hasMoreLements ()) {

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

}

Enumerator kan också användas för att definiera strömmen av inmatning till SequenceInputStream-objekten.

Vad är Iterator?

Iterator är ett offentligt gränssnitt i Java.util-paketet, vilket gör det möjligt att iterera genom element i samlingsobjekten som implementerar samlingsramen (som ArrayList, LinkedList, etc.). Detta introducerades i JDK 1.2 och ersatte Enumerator inom Java Collections Framework. Iterator har tre metoder. Metoden hasNext () testar om det finns kvarvarande element i samlingen och nästa () -metoden returnerar nästa element i serien. Metoden remove () kan användas för att ta bort det aktuella elementet från den underliggande samlingen. För att till exempel skriva ut alla element i Vector v1 med Iterator kan följande kodavsnitt användas.

Iterator i = v1.elements ();

While (i.hasNext ()) {

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

}

Vad är skillnaden mellan Enumeration och Iterator?

Även om Enumeration och Iterator är två av gränssnitten som finns i paketet java.util, som tillåter iterering / uppräkning genom element i en serie, har de sina skillnader. Egentligen ersätter Iterator, som introducerades efter Enumeration, Enumeration inom ramen för Java Collections. Till skillnad från Enumeration är Iterator felsäker. Detta innebär att samtidiga modifieringar (till den underliggande samlingen) inte är tillåtna när Iterator används. Detta är mycket användbart i miljöer med flera trådar där det alltid finns en risk för samtidiga modifieringar. I händelse av en samtidig modifiering kommer Iterator-objektet att kasta ett ConcurrentModificationException. Iterator har kortare metodnamn jämfört med Enumerator. Vidare,iterator har den extra funktionen att ta bort element under iterationen (vilket inte är möjligt med Enumerator). Så om det finns ett behov av att ta bort element från samlingen är Iterator det enda alternativet som kan övervägas.

Rekommenderas: