Rekommenderas, 2024

Redaktionen

Skillnad mellan Iterator och ListIterator i Java

Iterator och ListIterator är de två bland de tre markörerna i Java. Både Iterator och ListIterator definieras av Collection Framework i J ava.Util paket. ListIterator är gränssnittet för Iterator-gränssnittet. Den stora skillnaden mellan Iterator och ListIterator är att Iterator kan korsa elementen i samlingen endast i framåtriktningen, medan ListIterator kan kryssa elementen i en samling både i framåtriktningen och bakåtriktningen .

Låt oss diskutera några fler skillnader mellan Iterator och ListIterator med hjälp av jämförelsetabellen som visas nedan.

Jämförelsediagram

Grunder för jämförelseiteratorListIterator
GrundläggandeIterator kan passera elementen i en samling endast i framåtriktning.ListIterator kan korsa elementen i en samling både framåt och bakåt.
Lägg tillIterator kan inte lägga till element i en samling.ListIteror kan lägga till element i en samling.
ÄndraIterator kan inte ändra elementen i en samling.ListIterator kan ändra elementen i en samling med set ().
korsaIterator kan korsa karta, lista och uppsättning.ListIterator kan bara korsa listobjekt.
IndexIterator har ingen metod för att få ett index över elementet i en samling.Med ListIterator kan du få ett index över elementet i en samling.

Definition av Iterator

Iterator är ett gränssnitt i en samlingsram . Den används för att passera genom insamlingselementen. Iterator låter dig repetera varje element i samlingen en efter en, hämta element från samlingen eller ta bort element från samlingen. Du kan märka att du inte kan ändra något element i en samling med hjälp av Iterator.

Iterator har en metod iterator () som returnerar iteratorn till början av samlingen. När du väl har fått en iterator till början av en samling, så kryssar du elementen i samlingen, skapa en slinga som ringer harNext () varje gång slingan itereras. HasNext () om returnerar sant betyder det att nästa element finns i samlingen, och om det returneras falskt betyder det att alla element är traverserade. Sedan inuti slingan kan du få varje element i en samling med nästa () . Nästa () -metoden returnerar nästa element i samlingen.

Nackdel:

Med hjälp av Iterator kan du bara passera en samling i framåtriktningen.
Med hjälp av Iterator kan du inte manipulera eller ändra elementen i en samling.

Definition av ListIterator

ListIterator är ett gränssnitt i en samlingsram, och det utökar Iterator- gränssnittet. Med ListIterator kan du gå igenom insamlingselementen både i fram och bakåt . Du kan också lägga till, ta bort eller ändra något element i samlingen. Kortfattat kan vi säga att det tar bort nackdelarna med Iterator.

Metoderna för ListIterator är följande:

hasNext () : Om returnerar sant bekräftar att det finns fler element i en samling.
nästa () : Returnerar nästa element i listan.
nextIndex () : Returnerar indexet för nästa element i listan.
har Tidigare () : Returnerar sant om det finns element i omvänd riktning i en samling.
föregående () : Returnerar föregående element i en samling.
previousIndex () : Returnerar index för föregående element i en samling.
ta bort () : Radera elementet från en samling.
set () : Ändrar elementet i en samling.
add () : Lägger till det nya elementet i en samling.

Viktiga skillnader mellan Iterator och ListIterator

  1. Den grundläggande skillnaden mellan Iterator och ListIterator är att båda är markör, Iterator kan korsa element i en samling endast i framåtriktning. Å andra sidan kan ListIterator passera både framåt och bakåt.
  2. Använda iterator kan du inte lägga till något element i en samling. Men genom att använda ListIterator kan du lägga till element i en samling.
  3. Med hjälp av Iterator kan du inte ta bort ett element i en samling där, som Du kan ta bort ett element från en samling med ListIterator.
  4. Med hjälp av Iterator kan du gå igenom alla samlingar som Karta, Lista, Set. Men med ListIteror kan du bara korsa List-implementerade objekt.
  5. Du kan hämta ett index över ett element med hjälp av Iterator. Men eftersom List är sekventiell och indexbaserad kan du hämta ett index över ett element i att använda ListIterator.

Slutsats:

Du kan använda ListIterator när du måste korsa ett listobjekt i både framåtriktad och bakåtriktad riktning. Annars kan du använda Iterator eftersom den stöder alla typer av samlingsobjekt.

Top