Anbefalet, 2023

Redaktørens Valg

Forskel mellem Iterator og ListIterator i Java

Iteratoren og ListIterator er de to blandt de tre markører i Java. Både Iterator og ListIterator er defineret af Collection Framework i J ava.Util pakke. ListIterator er barnets interface til Iterator interface. Den største forskel mellem Iterator og ListIterator er, at Iterator kan krydse elementerne i samlingen kun i fremadrettet retning, mens ListIterator kan krydse elementerne i en samling i både fremadrettede og baglæns retning.

Lad os diskutere nogle flere forskelle mellem Iterator og ListIterator ved hjælp af sammenligningstabel vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningiteratorListIterator
GrundlæggendeIterator kan krydse elementerne i en samling kun i fremadgående retning.ListIterator kan krydse elementerne i en samling både fremad og baglæns.
TilføjeIterator kan ikke tilføje elementer til en samling.ListIteror kan tilføje elementer til en samling.
ModificereIterator kan ikke ændre elementerne i en samling.ListIterator kan ændre elementerne i en samling ved hjælp af sæt ().
TraverseIterator kan krydse kort, liste og sæt.ListIterator kan kun krydse Listeobjekter.
IndeksIterator har ingen metode til at opnå et indeks af elementet i en samling.Ved hjælp af ListIterator kan du få et indeks for elementet i en samling.

Definition af Iterator

Iterator er en grænseflade i en samlingsramme . Det bruges til at krydse gennem samlingselementerne. Iterator giver dig mulighed for at gentage hvert element i samlingen en efter én, hente elementer fra samlingen eller fjerne elementer fra samlingen. Du kan bemærke, at du ikke kan ændre noget element i en samling ved hjælp af Iterator.

Iterator har en metode iterator (), der returnerer iteratoren til begyndelsen af ​​samlingen. Når du først får en iterator til starten af ​​en samling, så krydser du elementerne i samlingen, etablerer en loop, der kalder hasNext () hver gang sløjfen gentager. HasNext () hvis returnerer sande betyder det, at det næste element er der i samlingen, og hvis det returnerer falsk, betyder det, at alle elementer er krydset. Derefter inde i løkken kan du få hvert element i en samling ved hjælp af næste () . Den næste () -metode returnerer det næste element i samlingen.

ulempe:

Ved hjælp af Iterator kan du kun krydse en samling i fremadgående retning.
Ved hjælp af Iterator kan du ikke manipulere eller ændre elementerne i en samling.

Definition af ListIterator

ListIterator er en grænseflade i en samlingsramme, og det udvider Iterator- grænsefladen. Ved hjælp af ListIterator kan du krydse elementerne i samlingen både i retning frem og tilbage . Du kan også tilføje, fjerne eller ændre noget element i samlingen. Kort sagt, vi kan sige det fjerner ulemper ved Iterator.

MethodIterator's metoder er som følger:

hasNext () : Hvis returneringer sande bekræfter, at der er flere elementer i en samling.
næste () : Returnerer næste elementer i listen.
nextIndex () : Returnerer indekset for de næste elementer i listen.
har Tidligere () : Returnerer sandt, hvis der er elementer i omvendt retning i en samling.
forrige () : Returnerer det forrige element i en samling.
previousIndex () : Returnerer indeks for det foregående element i en samling.
fjern () : Slet elementet fra en samling.
sæt () : Ændrer elementet i en samling.
add () : Tilføjer det nye element i en samling.

Nøgleforskelle mellem Iterator og ListIterator

  1. Den grundlæggende forskel mellem Iterator og ListIterator er, at begge er markør, Iterator kan krydse elementer i en samling kun i fremadrettet retning. På den anden side kan ListIterator krydse i både fremad og bagud retning.
  2. Ved hjælp af iterator kan du ikke tilføje noget element til en samling. Men ved at bruge ListIterator kan du tilføje elementer til en samling.
  3. Ved hjælp af Iterator kan du ikke fjerne et element i en samling, hvor, som Du kan fjerne et element fra en samling ved hjælp af ListIterator.
  4. Ved hjælp af Iterator kan du krydse alle samlinger som Map, List, Set. Men ved ListIteror kan du kun gennemgå Liste implementerede objekter.
  5. Du kan hente et indeks for et element ved hjælp af Iterator. Men da List er sekventiel og indeksbaseret, kan du hente et indeks for et element ved brug af ListIterator.

Konklusion:

Du kan bruge ListIterator, når du er nødt til at krydse et listeobjekt i både fremad og omvendt retning. Ellers kan du bruge Iterator, da det understøtter alle typer samlingsobjekter.

Top