Predstavme si niekoľko rozdielov medzi Iteratorom a ListIterator pomocou porovnávacieho grafu zobrazeného nižšie.
Porovnávacia tabuľka
Základ pre porovnanie | iterátor | ListIterator |
---|---|---|
základné | Iterátor môže prechádzať prvky v zbierke iba v smere dopredu. | ListIterator môže prechádzať prvky v zbierke v smere dopredu a dozadu. |
pridať | Iterátor nie je schopný pridať prvky do zbierky. | ListIteror môže pridať prvky do kolekcie. |
pozmeniť | Iterátor nemôže upravovať prvky v zbierke. | ListIterator môže upravovať prvky v kolekcii pomocou set (). |
Traverse | Iterátor môže prechádzať mapou, zoznamom a nastavením. | ListIterator môže prechádzať len zoznam objektov. |
index | Iterátor nemá žiadnu metódu na získanie indexu prvku v zbierke. | Pomocou nástroja ListIterator môžete získať index prvku v zbierke. |
Definícia Iterátora
Iterátor je rozhranie v rámci kolekcie . Používa sa na prechod cez zberné prvky. Iterátor vám umožňuje opakovať každý prvok v zbierke jeden po druhom, získať prvky z kolekcie alebo odstrániť prvky z kolekcie. Môžete si všimnúť, že nemôžete meniť žiadny prvok v zbierke pomocou nástroja Iterator.
Iterátor má metódu iterator (), ktorá vracia iterátor na začiatok kolekcie. Akonáhle dostanete iterátor na začiatok kolekcie, potom prejdete elementmi v zbierke vytvoriť slučku, ktorá volá hasNext () zakaždým, keď sa slučka iteruje. Príkaz hasNext (), ak vracia true, znamená, že ďalší prvok je v zbierke a ak sa vracia falošná, znamená to, že všetky prvky sú prechádzajúce. Potom vo vnútri slučky môžete získať každý prvok v zbierke pomocou nasledujúceho () . Metóda next () () vráti ďalší prvok kolekcie.
nevýhoda:
Použitím funkcie Iterator môžete prechádzať kolekciou iba v smere dopredu.
Pomocou nástroja Iterator nemôžete manipulovať ani upravovať prvky v zbierke.
Definícia zoznamu
ListIterator je rozhranie v rámci kolekcie a rozširuje rozhranie Iterator . Pomocou nástroja ListIterator môžete prejsť prvky zbierky v smere dopredu a dozadu . Môžete tiež pridať, odstrániť alebo upraviť ľubovoľný prvok v kolekcii. Stručne povedané, môžeme povedať, že odstraňuje nevýhody Iterator.
Metódy ListIterator sú nasledovné:
hasNext () : Ak vracia true, potvrdzuje, že v zbierke existuje viac prvkov.
next () : Vráti ďalšie prvky zoznamu.
nextIndex () : Vráti index ďalších prvkov v zozname.
hasPrevious () : Vracia true, ak sú prvky v opačnom smere v kolekcii.
previous () : Vráti predchádzajúci prvok do kolekcie.
previousIndex () : Vráti index predchádzajúceho prvku v kolekcii.
remove () : Vymaže prvok zo zbierky.
set () : Modifikuje prvok v kolekcii.
add () : pridá nový prvok do kolekcie.
Kľúčové rozdiely medzi Iterator a ListIterator
- Základným rozdielom medzi Iterator a ListIterator je, že ako kurzér, Iterator môže prechádzať prvky v zbierke iba v smere dopredu. Na druhej strane ListIterator môže prechádzať v smere dopredu a dozadu.
- Pomocou iterátora nemôžete do kolekcie pridať žiadny prvok. Pomocou nástroja ListIterator môžete pridávať prvky do kolekcie.
- Pomocou nástroja Iterator nemôžete odstrániť prvok v kolekcii, kde môžete odstrániť prvok zo zbierky pomocou nástroja ListIterator.
- Použitím funkcie Iterator môžete prechádzať všetky zbierky ako Map, List, Set. Ale ListIteror môžete prechádzať iba zoznamom implementovaných objektov.
- Môžete získať index prvku pomocou nástroja Iterator. Keďže zoznam je sekvenčný a založený na indexoch, môžete načítať index prvku pomocou zoznamu ListIterator.
záver:
ListIterator môžete použiť, keď musíte zvlášť prechádzať objektom List v smere dopredu aj späť. Inak môžete použiť Iterator, pretože podporuje všetky typy zbierok.