Wat is Iterator in Java en hoe te gebruiken?



Iterator in Java-blog geeft u een goede inleiding tot wat een iterator is en hoe u deze in Java kunt gebruiken met een paar voorbeelden

Als je werkt aan een en stel dat je een reeks wilt afdrukken, dat is waar Iterator in Java in beeld komt. Op deze manier kunt u de volgorde zelfs krijgen zonder de afdrukinstructie voor elke regel toe te voegen. Laten we dus eens kijken naar Iterator in .

Hieronder staan ​​de onderwerpen die ik in deze module zal behandelen:





oproep via referentie c ++

Laten we beginnen!

Wat is een iterator?

Java ondersteunt hoofdzakelijk vier verschillende cursors. Ze zijn namelijk:



  • Opsomming
  • Iterator
  • ListIterator
  • Splitser

Elk van deze Java-cursors heeft een aantal voor- en nadelen. In dit artikel zullen we ons concentreren op Iterator.

Nu, wat is een iterator in Java?

Iterator is een interface die behoort tot een verzamelingsraamwerk. Hiermee kunt u de verzameling doorlopen, krijgt u toegang tot het gegevenselement en verwijdert u de gegevenselementen van de verzameling.



Het wordt ook beschouwd als een universele iterator, omdat u het op elke iterator kunt toepassen voorwerp. Door een Iterator te gebruiken, kunt u zowel lees- als verwijderbewerkingen uitvoeren. Dit is een verbeterde versie van Opsomming met de extra functionaliteiten van verwijderbaarheid van een element.

Java Iterator-methoden

Java-iterator heeft in totaal 4 methoden. Laten we ze in detail begrijpen.

wat is een instantievariabele in java
MethodenOmschrijving
forEachRemaining (Consumeraction)Het voert de acties uit op elk van de elementen totdat en tenzij alle elementen zijn verwerkt. Ook totdat er een uitzondering wordt gegenereerd door de actie.
hasNext ()Deze geeft terug een echte waarde als een groot aantal elementen wordt aangetroffen tijdens iteratie.
De volgende()Deze geeft terug het volgende gespecificeerde element tijdens de iteratie.
verwijderen()Deze methode rverwijdert het huidige element. Gooit IllegalStateException als een poging wordt gedaan om remove () aan te roepen die niet wordt voorafgegaan door een aanroep naar next ().
boolean hasNext ()Dit geeft true terug als de iteratie meer elementen heeft.

Voorbeeld:

class Method {public static void main (String [] args) ArrayList list = nieuwe ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterator om de lijst te doorlopen Iterator iterator = list.iterator () System.out.println (' Lijstelementen : ') while (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Uitgang: EDUREKA

Laten we eens kijken naar ListIterator in Java.

ListIterator in Java

ListIterator in Java is een iterator waarmee gebruikers in beide richtingen door de collectie kunnen bladeren. Het bevat de volgende methoden:

MethodenMethode en beschrijving
void add (Object obj) Voegt obj in de lijst in vóór het element dat zal worden geretourneerd door de volgende aanroep naar next ().
boolean hasNext () Geeft true terug als er het volgende element is. Retourneert anders false.
boolean hasPrevious () Geeft true terug als er een vorig element is. Retourneert anders false.
Object volgende () Retourneert het volgende element. Er wordt een NoSuchElementException gegenereerd als er niet het volgende element is.
int nextIndex () Retourneert de index van het volgende element. Als er niet het volgende element is, geeft het de grootte van de lijst terug.
Object vorige () Retourneert het vorige element. Er wordt een NoSuchElementException gegenereerd als er geen vorig element is.
int previousIndex () Retourneert de index van het vorige element. Als er geen vorig element is, geeft het -1 terug.
leegte verwijderen () Verwijdert het huidige element uit de lijst. Er wordt een IllegalStateException gegenereerd als remove () wordt aangeroepen voordat next () of previous () wordt aangeroepen.
leegte set (Object obj) Wijst obj toe aan het huidige element. Dit is het element dat het laatst is geretourneerd door een aanroep naar next () of previous ().

Voorbeeld:

public class Lists {public static void main (String args []) {// Maak een arraylijst ArrayList al = new ArrayList () // voeg elementen toe aan de arraylijst al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Gebruik iterator om de inhoud van al System.out.print ('Originele inhoud van al:') Iterator itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '' )} System.out.println () // Wijzig objecten die worden herhaald ListIterator litr = al.listIterator () while (litr.hasNext ()) {Objectelement = litr.next () litr.set (element + '+') } System.out.print ('Gewijzigde inhoud van al:') itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '') } System.out.println () // Geef nu de lijst achterwaarts weer System.out.print ('Gewijzigde lijst achteruit:') terwijl (litr.hasPrevious ()) {Objectelement = litr.previous () System.out. print (element + '')} System.out.println ()}}

Uitgang:

Origineelinhoud van al:E D U R E K A
Gewijzigdinhoud van al:IS+D+U+R+IS+NAAR+ A +
Gewijzigdlijst achteruit:NAAR+NAAR+IS+R+U+D+ EN +

Laten we nu eens kijken naar de voordelen en beperkingen van deze iterator-interface in Java.

Voordelen van Iterator in Java

Iterator in Java heeft de volgende voordelen.

  • U kunt deze iterators voor elke verzamelingsklasse gebruiken.
  • Iterator in Java ondersteunt beide lezen net zoals verwijderen operaties.
  • Als u for loop je kan niet update (toevoegen / verwijderen) de collectie terwijl u met behulp van een iterator de collectie eenvoudig kunt updaten.
  • Het is een universele cursor voor de collectie-API.
  • De namen van de methoden zijn heel eenvoudig en zijn heel gemakkelijk te gebruiken.

Beperkingen van Iterator in Java

Iterators in Java hebben de volgende nadelen:

  • U kunt alleen voorwaartse iteratie uitvoeren, dat wil zeggen Uni-Directional Iterator.
  • Vervanging en toevoeging van een nieuw element wordt niet ondersteund door de Iterator.
  • ListIterator is de krachtigste iterator, maar is alleen van toepassing op List-geïmplementeerde klassen. Het is dus geen universele iterator.
  • Wanneer u CRUD-bewerkingen gebruikt, ondersteunt het de bewerkingen voor het maken en bijwerken niet.
  • Als je het vergelijkt met Spliterator, laat het je elementen niet parallel herhalen. Dit betekent dat het alleen sequentiële iteratie ondersteunt.
  • Het ondersteunt geen betere prestaties om een ​​grote hoeveelheid gegevens te herhalen.

Dit brengt ons aan het einde van dit artikel waar we hebben geleerd hoe iterator in Java werkt. Ik hoop dat je duidelijk bent met alles wat in deze tutorial met je is gedeeld.

wat is een methode in javascript

Als je dit artikel over 'Iterator in Java' relevant vond, bekijk dan het een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.

We zijn hier om je te helpen bij elke stap op je reis, daarnaast komen we met een curriculum dat is ontworpen voor studenten en professionals die Java Developer willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel de kern als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Mocht u nog vragen tegenkomen, stel dan gerust al uw vragen in de commentarensectie van 'Iterator in Java' en ons team zal u graag beantwoorden.