
Oglejmo si še nekaj razlik med Iteratorjem in ListIteratorjem s pomočjo primerjalne tabele, prikazane spodaj.
Primerjalna tabela
Podlaga za primerjavo | Iterator | ListIterator |
---|---|---|
Osnovno | Iterator lahko prečka elemente v zbirki samo v smeri naprej. | ListIterator lahko premakne elemente v zbirki naprej in nazaj. |
Dodaj | Iterator ne more dodati elementov v zbirko. | ListIteror lahko doda elemente v zbirko. |
Spremeni | Iterator ne more spremeniti elementov v zbirki. | ListIterator lahko spremeni elemente v zbirki z uporabo set (). |
Premakni | Iterator lahko prečka zemljevid, seznam in niz. | ListIterator lahko prečka samo predmete seznama. |
Indeks | Iterator nima metode za pridobitev indeksa elementa v zbirki. | Z uporabo ListIterator lahko dobite indeks elementa v zbirki. |
Opredelitev Iteratorja
Iterator je vmesnik v okviru za zbiranje . Uporablja se za prečkanje elementov zbiranja. Iterator vam omogoča, da vsak element zbirke ponovite enega za drugim, pridobite elemente iz zbirke ali odstranite elemente iz zbirke. Lahko opazite, da ne morete spremeniti nobenega elementa v zbirki z Iteratorjem.
Iterator ima metodo iterator (), ki vrne iterator na začetek zbirke. Ko dobite iterator za začetek zbirke, potem za prečkanje elementov v zbirki vzpostavite zanko, ki kliče hasNext () vsakič, ko se zanka ponovi. HasNext (), če vrne true, pomeni, da je naslednji element v zbirki in če vrne false, pomeni, da so vsi elementi prečkani. Nato znotraj zanke lahko vsak element v zbirki pridobite z naslednjim () . Metoda next () vrne naslednji element zbirke.
Slabost:
Z uporabo Iteratorja lahko zbirko premaknete samo v smeri naprej.
Z uporabo Iteratorja elementov v zbirki ne morete manipulirati ali spreminjati.
Opredelitev ListIteratorja
ListIterator je vmesnik v okviru zbirke in razširja vmesnik Iterator . Z uporabo ListIteratorja lahko elemente zbirke prečkate v smeri naprej in nazaj . Dodate lahko, odstranite ali spremenite kateri koli element v zbirki. Skratka, lahko rečemo, da odpravlja pomanjkljivosti Iteratorja.
Metode ListIteratorja so naslednje:
hasNext () : Če vrne true, potrdi, da je v zbirki več elementov.
next () : Vrne naslednje elemente seznama.
nextIndex () : Vrne indeks naslednjih elementov na seznamu.
hasPrevious () : Vrne true, če so v zbirki elementi v obratni smeri.
previous () : Vrne prejšnji element v zbirki.
previousIndex () : Vrne indeks prejšnjega elementa v zbirki.
remove () : Izbrišite element iz zbirke.
set () : Spremeni element v zbirki.
add () : doda nov element v zbirko.
Ključne razlike med Iteratorjem in ListIteratorjem
- Osnovna razlika med Iteratorjem in ListIteratorjem je, da sta oba kazalca, Iterator lahko premika elemente v zbirki samo v smeri naprej. Po drugi strani pa lahko ListIterator prečka v obe smeri naprej in nazaj.
- Z uporabo iteratorja ne morete dodati nobenega elementa v zbirko. Z uporabo ListIteratorja lahko dodate elemente v zbirko.
- Z uporabo Iteratorja elementa v zbirki ne morete odstraniti, kjer lahko, kot lahko iz elementa ListIterator odstranite element iz zbirke.
- Z uporabo Iteratorja lahko prečkate vse zbirke, kot so Map, List, Set. Vendar lahko ListIteror samo prečkate implementirane objekte seznama.
- S pomočjo Iteratorja lahko poiščete indeks elementa. Ker pa je seznam zaporeden in temelji na indeksu, lahko poiščete indeks elementa s pomočjo seznama ListIterator.
Sklep:
ListIterator lahko uporabite, ko morate še posebej prečkati objekt List v smeri naprej in nazaj. V nasprotnem primeru lahko uporabite Iterator, saj podpira vse vrste zbirk objektov.