Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi Iterator a ListIterator v jazyku Java

Iterator a ListIterator sú dva z troch kurzorov Java. Iterator aj ListIterator sú definované kolektívnym rámcom v balíku J ava.Util . ListIterator je podradené rozhranie rozhrania Iterator. Hlavným rozdielom medzi Iterator a ListIterator je to, že Iterator môže prechádzať prvky v zbierke iba v smere dopredu, zatiaľ čo ListIterator môže prechádzať elementy v zbierke v smere dopredu i späť .

Predstavme si niekoľko rozdielov medzi Iteratorom a ListIterator pomocou porovnávacieho grafu zobrazeného nižšie.

Porovnávacia tabuľka

Základ pre porovnanieiterátorListIterator
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 ().
TraverseIterátor môže prechádzať mapou, zoznamom a nastavením.ListIterator môže prechádzať len zoznam objektov.
indexIterá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

  1. 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.
  2. Pomocou iterátora nemôžete do kolekcie pridať žiadny prvok. Pomocou nástroja ListIterator môžete pridávať prvky do kolekcie.
  3. Pomocou nástroja Iterator nemôžete odstrániť prvok v kolekcii, kde môžete odstrániť prvok zo zbierky pomocou nástroja ListIterator.
  4. 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.
  5. 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.

Top