Verschil tussen enumeratie en iterator

Anonim

Enumeratie vs Iterator

Er zijn veel datastructuren die fungeren als collecties in Java, zoals vectoren, Hash tabellen en klassen die Java implementeren Collectie Framework (dat wil zeggen HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap en LinkedHashSet). Er zijn tal van manieren om te herhalen door de afzonderlijke elementen van de objecten in Java. Java biedt twee interfaces om deze taak makkelijker te maken. Enumeratie en Iterator zijn twee van de interfaces gevonden in java. util-pakket dat functionaliteit biedt om door middel van sequenties of objecten met een reeks items op te noemen. Enumerator werd geïntroduceerd in JDK 1. 0 en Iterator die in JDK 1. 2 geïntroduceerd werd. Virtueel dupliceert de functionaliteit van de Enumerator (binnen het Collectie Framework).

Wat is opschrift?

Enumeration is een publieke interface in Java, geïntroduceerd in JDK 1. 0, die het vermogen biedt om door sequenties van elementen te noteren. Het vindt u onder Java. util pakket. Wanneer de Enumeration-interface wordt geïmplementeerd door een object, kan dat object een reeks elementen genereren. Enumeration interface heeft twee methoden. De methode heeftMoreElements () zal testen als deze opsomming meer elementen bevat en het volgendeElement () keert het volgende element in de volgorde terug (als er nog minstens één is). Met andere woorden, door achtereenvolgens NextElement () te bellen, kan de programmeur toegang krijgen tot de afzonderlijke elementen in de serie. Als u bijvoorbeeld alle elementen in Vector v1 wilt afdrukken via Enumerator, kan het volgende code fragment worden gebruikt.

Opname e = v1. elementen ();

Terwijl (e. HasMoreLements ()) {

Systeem heeft. uit. println (e. nextElement ());

}

Enumerator kan ook worden gebruikt om de invoerstroom voor de SequenceInputStream-objecten te definiëren.

Wat is een Iterator?

Iterator is een openbare interface in Java. util pakket, waarmee het door middel van elementen van de verzamelingen objecten kan herstellen die het Collectie-kader implementeren (zoals ArrayList, LinkedList, enz.). Dit werd geïntroduceerd in JDK 1. 2 en vervangde de Enumerator binnen het Java Collection Framework. Iterator heeft drie methoden. De methode heeftNext () tests of er resterende elementen in de collectie zijn en de volgende () methode geeft het volgende element in de serie weer. De methode remove () kan gebruikt worden om het huidige element van de onderliggende collectie te verwijderen. Om bijvoorbeeld alle elementen in Vector v1 te printen met behulp van Iterator, kan het volgende code fragment worden gebruikt.

Iterator i = v1. elementen ();

Terwijl (I. HasNext ()) {

Systeem. uit. println (e. next ());

}

Wat is het verschil tussen Enumeration and Iterator?

Hoewel, enumeratie en iterator twee van de interfaces zijn die in java worden gevonden.util pakket, waardoor het mogelijk is om te herhalen / op te noemen via elementen van een serie, hebben ze hun verschillen. Eigenlijk is Iterator, die na Enumeration werd ingevoerd, de Opname in het kader van Java Collecties vervangen. In tegenstelling tot enumeratie is Iterator falenveilig. Dit betekent dat gelijktijdige aanpassingen (naar de onderliggende collectie) niet toegestaan ​​zijn wanneer Iterator wordt gebruikt. Dit is zeer handig in multi-threaded omgevingen waar er altijd risico bestaat op gelijktijdige aanpassingen. Bij een gelijktijdige wijziging zal het Iteratorobject een ConcurrentModificationException gooien. Iterator heeft kortere methode namen in vergelijking met Enumerator. Bovendien heeft iterator de extra functionaliteit van het verwijderen van elementen tijdens de iteratie (die niet mogelijk is met Enumerator). Dus, als er elementen nodig zijn om elementen uit de collectie te verwijderen, is Iterator de enige optie die overwogen kan worden.