logo

Iterator in Java

Op Java is een Iterator is een van de Java-cursors. Java-iterator is een interface die wordt toegepast om een ​​verzameling Java-objectcomponenten één voor één in zijn geheel te doorlopen. Het is gratis te gebruiken in de Java-programmeertaal sinds het Java 1.2 Collection-framework. Het behoort tot het java.util-pakket.

Hoewel Java Iterator werd geïntroduceerd in Java 1.2, is het nog steeds niet het oudste beschikbare hulpmiddel om door de elementen van het Collection-object te bladeren. De oudste Iterator in de Java-programmeertaal is de Enumerator vóór Iterator. De Java Iterator-interface is de opvolger van de enumerator-iterator die in het begin werd gebruikt om enkele toegankelijke collecties zoals de ArrayLists te doorkruisen.

De Java-Iterator is ook bekend als de universele cursor van Java omdat het geschikt is voor alle klassen van het Collection-framework. De Java Iterator helpt ook bij bewerkingen zoals READ en REMOVE. Wanneer we de Java Iterator-interface vergelijken met de opsomming-iterator-interface, kunnen we zeggen dat de namen van de methoden die beschikbaar zijn in Java Iterator nauwkeuriger en eenvoudiger te gebruiken zijn.

Voordelen van Java Iterator

Iterator in Java werd zeer gangbaar vanwege de talrijke voordelen ervan. De voordelen van Java Iterator worden als volgt gegeven:

in welk jaar werd de computer uitgevonden
  • De gebruiker kan deze iterators toepassen op elk van de klassen van het Collection-framework.
  • In Java Iterator kunnen we zowel de lees- als de verwijderbewerkingen gebruiken.
  • Als een gebruiker met een for-lus werkt, kan hij de collectie niet moderniseren (toevoegen/verwijderen), terwijl hij, als hij de Java Iterator gebruikt, de collectie eenvoudigweg kan bijwerken.
  • De Java Iterator wordt beschouwd als de universele cursor voor de Collection API.
  • De methodenamen in de Java Iterator zijn zeer eenvoudig en zeer eenvoudig te gebruiken.

Nadelen van Java Iterator

Ondanks de vele voordelen heeft de Java Iterator ook verschillende nadelen. De nadelen van de Java Iterator worden hieronder gegeven:

  • De Java Iterator behoudt alleen de iteratie in voorwaartse richting. In eenvoudige woorden: de Java Iterator is een unidirectionele Iterator.
  • De vervanging en uitbreiding van een nieuw onderdeel wordt niet goedgekeurd door de Java Iterator.
  • Bij CRUD-bewerkingen bevat de Java Iterator niet de verschillende bewerkingen zoals CREATE en UPDATE.
  • In vergelijking met de Spliterator ondersteunt Java Iterator geen bewegende elementen in het parallelle patroon, wat impliceert dat Java Iterator alleen sequentiële iteratie ondersteunt.
  • In vergelijking met de Spliterator ondersteunt Java Iterator geen betrouwbaardere uitvoering om het bulkvolume aan gegevens te doorkruisen.

Hoe Java Iterator gebruiken?

Wanneer een gebruiker de Java Iterator moet gebruiken, is het voor hem verplicht om een ​​instance van de Iterator-interface te maken uit de verzameling objecten waar hij doorheen wil gaan. Daarna houdt de ontvangen Iterator het spoor bij van de componenten in de onderliggende verzameling om ervoor te zorgen dat de gebruiker elk van de elementen van de verzameling objecten zal doorlopen.

Als de gebruiker de onderliggende verzameling wijzigt terwijl hij een Iterator doorloopt die naar die verzameling leidt, zal de Iterator dit doorgaans bevestigen en een uitzondering genereren de volgende keer dat de gebruiker probeert het volgende onderdeel uit de Iterator te halen.

Java-iteratormethoden

De volgende afbeelding geeft perfect het klassendiagram van de Java Iterator-interface weer. Het bevat in totaal vier methoden:

  • heeftVolgende()
  • volgende()
  • verwijderen()
  • voorElkeRemaining()

De voorElkeRemaining() methode is toegevoegd in Java 8. Laten we elke methode in detail bespreken.

spel duif Android
    Booleaanse hasNext(): De methode accepteert geen enkele parameter. Het retourneert waar als er meer elementen over zijn in de iteratie. Als er geen elementen meer over zijn, wordt false geretourneerd.
    Als er geen elementen meer over zijn in de iteratie, is het niet nodig om de methode next() aan te roepen. In eenvoudige bewoordingen kunnen we zeggen dat de methode wordt gebruikt om te bepalen of de methode next() moet worden aangeroepen of niet.E volgende():Het is vergelijkbaar met de hasNext()-methode. Het accepteert ook geen enkele parameter. Het retourneert E, dat wil zeggen het volgende element in de traversal. Als de iteratie of verzameling objecten geen elementen meer heeft om te itereren, wordt de NoSuchElementException gegenereerd.standaard leegte remove():Deze methode vereist ook geen parameters. Er is geen retourtype voor deze methode. De belangrijkste functie van deze methode is het verwijderen van het laatste element dat wordt geretourneerd door de iterator die door de onderliggende verzameling loopt. De methode remove () kan nauwelijks één keer worden aangevraagd per de volgende () methodeaanroep. Als de iterator de verwijderingsbewerking niet ondersteunt, wordt de UnSupportedOperationException gegenereerd. Het genereert ook de IllegalStateException als de volgende methode nog niet is aangeroepen.standaard ongeldig voorEachRemaining(Consumentenactie):Het is de enige methode van Java Iterator die een parameter gebruikt. Het accepteert actie als parameter. Actie is niets anders dan datgene wat uitgevoerd moet worden. Er is geen retourtype van de methode. Deze methode voert de specifieke bewerking uit op alle linkercomponenten van de verzameling totdat alle componenten zijn verbruikt of de actie een uitzondering genereert. Uitzonderingen die door een actie worden gegenereerd, worden aan de beller bezorgd. Als de actie nul is, genereert deze een NullPointerException.

Voorbeeld van Java-Iterator

Nu is het tijd om een ​​Java-programma uit te voeren om het voordeel van de Java Iterator-interface te illustreren. De onderstaande code produceert een ArrayList met stadsnamen. Vervolgens initialiseren we een iterator door de iterator () -methode van de ArrayList toe te passen. Daarna wordt de lijst doorlopen om elk element weer te geven.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Uitgang:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punten om te onthouden

  • De Java Iterator is een interface die is toegevoegd in de Java-programmeertaal in het Java 1.2 Collection-framework. Het behoort tot het java.util-pakket.
  • Het is een van de Java-cursors die worden gebruikt om de objecten van het verzamelingsframework te doorkruisen.
  • De Java Iterator wordt gebruikt om de componenten van het verzamelobject één voor één te itereren.
  • De Java Iterator staat ook bekend als de Universele cursor van Java, omdat deze geschikt is voor alle klassen van het Collection-framework.
  • De Java Iterator ondersteunt ook de bewerkingen zoals READ en REMOVE.
  • De namen van de methoden van de klasse Iterator zijn heel eenvoudig en gemakkelijk te gebruiken in vergelijking met de namen van de methoden van Enumeration Iterator.