Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp Iterator ir ListIterator Java

„Iterator“ ir „ListIterator“ yra trys „Java“ žymekliai . Tiek „Iterator“, tiek „ListIterator“ apibrėžiami kolekcijos sistema „J ava.Util“ . „ListIterator“ yra „Iterator“ sąsajos vaikų sąsaja. Pagrindinis skirtumas tarp „Iterator“ ir „ListIterator“ yra tas, kad Iteratorius gali perkelti elementus į kolekciją tik į priekį, o „ ListIterator“ gali judėti elementuose kolekcijoje tiek į priekį, tiek atgal .

Aptarkime daugiau skirtumų tarp „Iterator“ ir „ListIterator“, naudojant žemiau pateiktą palyginimo lentelę.

Palyginimo diagrama

Palyginimo pagrindasIteratorius„ListIterator“
PagrindinisIteratorius gali perkelti elementus į kolekciją tik į priekį.„ListIterator“ gali perkelti elementus į kolekciją į priekį ir atgal.
PapildytiIterator negali pridėti elementų į kolekciją.„ListIteror“ gali rinkti elementus.
KeistiIterator negali keisti kolekcijos elementų.„ListIterator“ gali keisti kolekcijos elementus naudodamas rinkinį ().
TraversasIteratorius gali pereiti žemėlapį, sąrašą ir rinkinį.„ListIterator“ gali perkelti tik sąrašo objektus.
IndeksasIteratorius neturi metodo, kaip gauti elemento indekso rinkinį.Naudojant „ListIterator“, galite gauti elemento indekso rinkinį.

Iteratoriaus apibrėžimas

„Iterator“ yra rinkimo sistemos sąsaja. Jis naudojamas judėti per surinkimo elementus. „Iterator“ leidžia kiekvieną elemento elementą kartoti vieną kartą, gauti elementus iš kolekcijos arba pašalinti elementus iš kolekcijos. Jūs galite pastebėti, kad negalite modifikuoti jokio rinkinio elemento naudojant „Iterator“.

„Iterator“ turi metodą iterator (), kuris grąžina iteratoriui iki kolekcijos pradžios. Kai gausite iteratorių į kolekcijos pradžią, tada perkelkite kolekcijos elementus, kad sukurtumėte kilpą, kuri kiekvieną kartą, kai ciklas kartoja, skambina hasNext () . JeiNext (), jei grąžinama tiesa, tai reiškia, kad kitas elementas yra kolekcijoje, ir jei jis grąžina klaidingą, tai reiškia, kad visi elementai yra perkeliami. Tada kilpos viduje galite gauti kiekvieną kolekcijos elementą naudodami kitą () . Kitas metodas grąžina kitą kolekcijos elementą.

Trūkumas:

Naudojant Iterator galima perkelti kolekciją tik į priekį.
Naudojant Iterator, negalite manipuliuoti ar keisti kolekcijos elementų.

„ListIterator“ apibrėžimas

„ListIterator“ yra kolekcijos sąsajos sąsaja, kuri praplečia „ Iterator“ sąsają. Naudodamiesi „ListIterator“, galite perkelti kolekcijos elementus į priekį ir atgal . Taip pat galite pridėti, pašalinti arba modifikuoti bet kurį kolekcijos elementą. Trumpai tariant, galime pasakyti, kad jis pašalina Iterator trūkumus.

ListIterator metodai yra tokie:

hasNext () : Jei grąžinimas teisingas, patvirtina, kad kolekcijoje yra daugiau elementų.
next () : grąžina kitus sąrašo elementus.
nextIndex () : grąžina kitų sąrašo elementų indeksą.
hasPrevious () : Grįžta tiesa, jei kolekcijoje yra elementų priešinga kryptimi.
ankstesnis () : grąžina ankstesnį kolekcijos elementą.
previousIndex () : grąžina kolekcijos ankstesnio elemento indeksą.
pašalinti () : Ištrinkite elementą iš kolekcijos.
set () : pakeičia elemento elementą.
add () : prideda naują kolekcijos elementą.

Pagrindiniai skirtumai tarp Iterator ir ListIterator

  1. Pagrindinis skirtumas tarp „Iterator“ ir „ListIterator“ yra tas, kad abu yra žymekliai, „Iterator“ gali perkelti elementus į kolekciją tik į priekį. Kita vertus, „ListIterator“ gali judėti į priekį ir atgal.
  2. Naudodami iteratorių, negalite pridėti jokio elemento kolekcijai. Tačiau, naudojant „ListIterator“, galite rinkti elementus.
  3. Naudodami Iterator, negalite pašalinti elemento kolekcijoje, kur, kaip galite pašalinti elementą iš kolekcijos naudojant „ListIterator“.
  4. Naudodamiesi „Iterator“ galite pereiti visas kolekcijas, pvz., Žemėlapį, sąrašą, rinkinį. Tačiau „ListIteror“ galite pereiti į sąrašą tik įgyvendintus objektus.
  5. Galite gauti elemento indeksą naudodami Iterator. Bet kaip sąrašas yra nuoseklus ir indeksas pagrįstas, galite gauti elemento indeksą naudodami „ListIterator“.

Išvada:

Galite naudoti „ListIterator“, kai reikia ypač judėti sąrašo objektu į priekį ir atgal. Be to, galite naudoti „Iterator“, nes jis palaiko visus tipo kolekcijos objektus.

Top