Aanbevolen, 2024

Editor'S Choice

Verschil tussen Iterator en ListIterator in Java

De Iterator en ListIterator zijn de twee van de drie cursors van Java. Zowel Iterator als ListIterator worden gedefinieerd door Collection Framework in het pakket J ava.Util . ListIterator is de onderliggende interface van de Iterator-interface. Het grote verschil tussen Iterator en ListIterator is dat Iterator de elementen in de verzameling alleen in voorwaartse richting kan doorkruisen, terwijl de ListIterator de elementen in een verzameling zowel in voorwaartse als in achterwaartse richting kan doorlopen.

Laten we wat meer verschillen bespreken tussen Iterator en ListIterator met behulp van de onderstaande vergelijkingsgrafiek.

Vergelijkingstabel

Basis voor vergelijkingiteratorListIterator
basis-Iterator kan de elementen in een verzameling alleen in voorwaartse richting doorkruisen.ListIterator kan de elementen in een verzameling zowel vooruit als achteruit verplaatsen.
ToevoegenIterator kan geen elementen aan een verzameling toevoegen.ListIteror kan elementen aan een verzameling toevoegen.
WijzigenIterator kan de elementen in een verzameling niet wijzigen.ListIterator kan de elementen in een verzameling wijzigen met behulp van set ().
TraverseIterator kan kaart, lijst en set doorlopen.ListIterator kan alleen lijstobjecten doorkruisen.
InhoudsopgaveIterator heeft geen methode om een ​​index van het element in een verzameling te verkrijgen.Met ListIterator kunt u een index van het element in een verzameling verkrijgen.

Definitie van Iterator

Iterator is een interface in een collectieraamwerk . Het wordt gebruikt om door de verzamelelementen te lopen. Met Iterator kunt u elk element in de verzameling een voor een herhalen, elementen uit de verzameling ophalen of elementen uit de verzameling verwijderen. U kunt merken dat u met Iterator geen element in een verzameling kunt wijzigen.

Iterator heeft een methode- iterator () die de iterator retourneert naar het begin van de verzameling. Zodra u een iterator naar het begin van een verzameling krijgt, moet u de elementen in de verzameling doorlopen om een ​​lus te maken die callsNext () aanroept telkens wanneer de lus wordt herhaald. De hasNext () als het resultaat true is, betekent dit dat het volgende element zich in de verzameling bevindt en als het false retourneert, betekent dit dat alle elementen zijn doorzocht. Vervolgens binnen de lus, kunt u elk element in een verzameling verkrijgen met behulp van next () . De methode next () retourneert het volgende element van de verzameling.

Nadeel:

Met Iterator kunt u een verzameling alleen in voorwaartse richting doorkruisen.
Met Iterator kunt u de elementen in een verzameling niet manipuleren of wijzigen.

Definitie van ListIterator

ListIterator is een interface in een collectieraamwerk en breidt de Iterator- interface uit. Met ListIterator kunt u de elementen van de verzameling doorlopen in zowel voorwaartse als achterwaartse richtingen. U kunt ook elementen in de verzameling toevoegen, verwijderen of wijzigen . Kortom, we kunnen zeggen dat het de nadelen van Iterator wegneemt.

De methoden van ListIterator zijn als volgt:

hasNext () : Als true retourneert, wordt bevestigd dat er meer elementen in een verzameling zijn.
next () : Retourneert de volgende elementen van de lijst.
nextIndex () : Retourneert de index van de volgende elementen in de lijst.
hasPrevious () : geeft true terug als er elementen in de omgekeerde richting in een verzameling staan.
previous () : Retourneert het vorige element in een verzameling.
previousIndex () : geeft de index van het vorige element in een verzameling.
remove () : verwijder het element uit een verzameling.
set () : past het element in een verzameling aan.
add () : voegt het nieuwe element toe aan een verzameling.

Belangrijkste verschillen tussen Iterator en ListIterator

  1. Het basisverschil tussen Iterator en ListIterator is dat zowel cursor als Iterator elementen in een verzameling alleen in voorwaartse richting kunnen doorlopen. Aan de andere kant kan de ListIterator zowel voor- als achterwaarts doorlopen.
  2. Met iterator kunt u geen elementen aan een verzameling toevoegen. Maar door ListIterator te gebruiken, kunt u elementen aan een verzameling toevoegen.
  3. Met Iterator kunt u een element in een verzameling niet verwijderen waar, zoals u een element uit een verzameling kunt verwijderen met ListIterator.
  4. Met Iterator kun je door alle collecties lopen, zoals Kaart, Lijst, Set. Maar, door ListIteror kunt u List-geïmplementeerde objecten alleen doorkruisen.
  5. U kunt een index van een element ophalen met Iterator. Maar aangezien List sequentieel en index-gebaseerd is, kunt u een index van een element ophalen met ListIterator.

Conclusie:

U kunt ListIterator gebruiken wanneer u in het bijzonder een List-object zowel in voorwaartse als in omgekeerde richting moet doorlopen. Anders kunt u Iterator gebruiken omdat het alle type verzamelobjecten ondersteunt.

Top