Doporučená, 2024

Redakce Choice

Rozdíl mezi Iterator a ListIterator v Javě

Iterator a ListIterator jsou dva mezi třemi kurzory Javy. Iterator i ListIterator jsou definovány pomocí Collection Framework v balíku J ava.Util . ListIterator je podřízené rozhraní rozhraní Iterator. Hlavním rozdílem mezi Iterator a ListIterator je to, že Iterator může procházet elementy v kolekci pouze ve směru dopředu, zatímco ListIterator může procházet elementy v kolekci jak směrem dopředu, tak směrem dozadu .

Pojďme diskutovat některé další rozdíly mezi Iterator a ListIterator pomocí srovnávací tabulky uvedené níže.

Srovnávací graf

Základ pro srovnáníIterátorListIterator
ZákladníIterátor může procházet prvky ve sbírce pouze směrem dopředu.ListIterator může procházet prvky v kolekci vpřed i vzad.
PřidatIterator nemůže přidat prvky do kolekce.ListIteror může přidat prvky do kolekce.
UpravitIterátor nemůže měnit prvky v kolekci.ListIterator může modifikovat prvky v kolekci pomocí sady ().
přejítIterátor může procházet mapou, seznamem a sadou.ListIterator může procházet pouze objekty seznamu.
IndexIterátor nemá žádnou metodu pro získání indexu prvku v kolekci.Pomocí ListIterator můžete získat index prvku v kolekci.

Definice Iterátoru

Iterator je rozhraní v rámci kolekce . Používá se k průchodu sběrnými prvky. Iterátor vám umožňuje opakovat jednotlivé prvky ve sbírce jeden po druhém, získávat prvky ze sbírky nebo odstraňovat prvky z kolekce. Můžete si všimnout, že nemůžete měnit žádný prvek v kolekci pomocí Iterátoru.

Iterator má metodu iterator (), která vrací iterátor na začátek kolekce. Jakmile dostanete iterátor na začátek kolekce pak přejděte prvky v kolekci vytvořit smyčku, která volá hasNext () při každém opakování smyčky. Pokud má parametr hasNext () hodnotu true, znamená to, že další prvek je v kolekci, a pokud vrátí hodnotu false, znamená to, že všechny prvky jsou překročeny. Pak uvnitř smyčky můžete získat každý prvek v kolekci pomocí next () . Metoda next () vrací další prvek kolekce.

Nevýhody:

Pomocí Iterátoru můžete procházet kolekci pouze dopředu.
Pomocí Iterátoru nemůžete manipulovat nebo měnit prvky v kolekci.

Definice ListIterator

ListIterator je rozhraní v rámci kolekce a rozšiřuje rozhraní Iterator . Pomocí ListIterator můžete procházet prvky kolekce v obou směrech dopředu i dozadu . Můžete také přidávat, odebírat nebo upravovat libovolný prvek v kolekci. Stručně řečeno, můžeme říci, že odstraňuje nevýhody Iterátoru.

Metody ListIterator jsou následující:

hasNext () : Pokud vrátí true, potvrdí, že v kolekci je více prvků.
next () : Vrací další prvky seznamu.
nextIndex () : Vrací index dalších prvků v seznamu.
hasPrevious () : Vrátí hodnotu true, pokud jsou v kolekci prvky v opačném směru.
previous () : Vrací předchozí prvek v kolekci.
previousIndex () : Vrací index předchozího prvku v kolekci.
remove () : Odstraní prvek ze sbírky.
set () : Upravuje prvek v kolekci.
add () : Přidá nový prvek do kolekce.

Klíčové rozdíly mezi Iterator a ListIterator

  1. Základní rozdíl mezi Iterator a ListIterator je, že oba jsou kurzor, Iterator může procházet prvky v kolekci pouze dopředu. Na druhé straně může ListIterator procházet směrem dopředu i dozadu.
  2. Pomocí iterátoru nelze do kolekce přidat žádný prvek. Ale pomocí ListIterator můžete přidat prvky do kolekce.
  3. Pomocí Iterator nelze odebrat prvek v kolekci, kde, jako prvek můžete odebrat z kolekce pomocí ListIterator.
  4. Pomocí Iterator můžete procházet všechny sbírky, jako je Map, List, Set. Podle ListIteroru však můžete procházet seznamem implementovaných objektů.
  5. Pomocí prvku Iterator můžete načíst index prvku. Ale protože seznam je sekvenční a založený na indexu, můžete načíst index elementu pomocí ListIterator.

Závěr:

ListIterator můžete použít, když musíte pohybovat objektem Listu směrem dopředu i dozadu. Jinak můžete použít Iterator, protože podporuje všechny objekty typu kolekce.

Top