rozdíl mezi Iterátorem a výčtem rozhraní v Javě

 iterátor vs výčtemtři kurzory, které se používají pro přístup k prvkům z libovolné kolekce jeden po druhém, jsou výčet, iterátor a ListIterator. Iterátor a Enumerator jsou však určeny pro provádění stejné práce. Přesto se od sebe liší v tom smyslu, že výčet má přístup pouze pro čtení k prvkům ve sbírce. Na druhé straně může iterátor číst a odstraňovat prvky z kolekce.

důležitý rozdíl mezi Iterátorem a výčtem spočívá v tom, že výčet nelze použít na třídy kolekce, je použitelný pouze na starší třídy. Na druhou stranu, iterátor je použitelný pro třídy kolekce, proto se označuje jako univerzální kurzor. Naučme se nějaký další rozdíl mezi Iterátorem a výčtem pomocí níže uvedeného srovnávacího grafu.

obsah: Iterator Vs výčet

  1. srovnávací tabulka
  2. definice
  3. klíčové rozdíly
  4. závěr

srovnávací tabulka

základ pro srovnání Iterator výčet
Basic Iterator je univerzální kurzor, protože je použitelný pro všechny třídy kolekce. výčet není univerzální kurzor, protože se vztahuje pouze na starší třídy.
přístup pomocí Iterátoru můžete číst a odstraňovat prvky v kolekci. pomocí výčtu můžete číst pouze prvky ve sbírce.
metody public boolean hasnext ();
public objects next ();
public void remove ();
public boolean hasMoreElements ();
public object nextElement();
omezení Iterator je jednosměrný kurzor pro přístup vpřed.
iterátor nemůže nahradit žádný prvek v kolekci.
iterátor nemůže do kolekce přidat žádný nový prvek.
výčet je jednosměrný dopředný přístupový kurzor.
výčet podporuje pouze starší třídy.
výčet má přístup pouze pro čtení k prvkům ve sbírce.
překonat Chcete-li překonat omezení Iterátoru, musíte se rozhodnout pro ListIterator. Chcete-li překonat omezení výčtu, musíte zvolit iterátor.

definice Iterátorového rozhraní

iterátor je rozhraní v rámci kolekce. Protože iterátor je použitelný pro všechny třídy kolekce, označuje se jako univerzální kurzor. Je to kurzor používaný pro přístup k prvkům v kolekci jeden po druhém. Pomocí Iterátoru můžete načíst prvky z kolekce a pokud chcete, můžete také odstranit prvky z kolekce. Objekt Iterátoru lze vytvořit tak, jak je uvedeno níže.

Iterator itr = Collc.iterator();

proměnná itr je objektem Iterátoru. Collc je jakýkoli objekt kolekce, který má být cyklován nebo iterován pomocí objektu (itr) Iterátoru. Iterátor () je metoda používaná k vytvoření objektu iterátoru. Existují tři metody v Iterátoru, jak je uvedeno níže.

public boolean hasnext();public Object next();public void remove();

první metoda hasnext() kontroluje, zda kolekce obsahuje nějaké prvky nebo ne. Pokud kolekce obsahuje prvky, vrátí true else vrátí false. Druhá metoda next () se používá k načtení dalšího prvku ve sbírce. Třetí metoda remove () se používá k odstranění prvků ze sbírky.

Iterator může cestovat ve sbírce pouze ve směru vpřed, který se během cestování nemůže pohybovat zpět. Iterátor může odstranit prvek z kolekce, ale nemá schopnost nahradit existující prvek novým prvkem, ani nemůže přidat nový prvek do kolekce. Chcete-li překonat tato omezení, můžete jít na rozhraní ListIterator.

definice rozhraní výčtu

výčet je rozhraní použitelné pro starší třídy a nelze jej použít pro žádnou třídu kolekce. Nejedná se tedy o univerzální kurzor. Výčet načte prvek (objekt) ze sbírky jeden po druhém. Výčet objekt má přístup pouze pro čtení k prvkům kolekce. Výčet objekt nemůže změnit žádný prvek z kolekce. Podívejme se, jak vytvořit objekt výčtu, podívejte se.

Enumeration er = Vect.elements();

proměnná er je předmětem výčtu. Vect je objekt třídy vektorů, který musí procházet objektem (er) výčtu. Prvek metody () se používá k vytvoření objektu výčtu. Existují pouze dvě metody v rozhraní výčtu, jak je uvedeno níže.

public boolean hasMoreElements();public nextElement();

první metoda mámoreelements() se používá ke kontrole stavu kolekce, zda má prvky v sobě nebo je prázdná. Pokud má kolekce prvky, metoda hasMoreElements () vrátí true else vrátí false. Druhá metoda nextElement () se používá k načtení prvků ze sbírky jeden po druhém.

po dokončení procházení metoda nextElement() vyvolá NoSuchElementException. Objekt výčtu se pohybuje pouze dopředným směrem. Nemůže přidat nebo odebrat nebo nahradit žádný prvek ve sbírce. Chcete-li překonat tato omezení výčtu, musíte se rozhodnout pro iterátor.

klíčové rozdíly mezi Iterátorem a výčtem v Javě

  1. hlavní rozdíl mezi Iterátorem a výčtem je, že iterátor je univerzální kurzor, lze použít pro iteraci jakéhokoli objektu kolekce. Na druhou stranu, výčet se používá pouze pro procházení objektu starší třídy.
  2. objekt výčtu má přístup pouze pro čtení k prvkům ve sbírce. Objekt Iterátoru však umí číst a odebírat prvky z kolekce.
  3. existují dvě metody iterátoru, jedna pro kontrolu stavu kolekce a druhá pro načtení prvků ze sbírky. Kromě výčtu metod iterátor má ještě jednu metodu k odstranění prvků z kolekce.
  4. omezení výčtu jsou, že je to jednosměrný kurzor vpřed, má přístup pouze pro čtení a může být aplikován na třídy kolekce. Na druhou stranu, iterátor nemůže nahradit nebo přidat žádný nový prvek v kolekci a jako výčet jeho také vpřed jednosměrný kurzor.
  5. omezení výčtu jsou vyřešena Iterátorem a omezení Iterátoru jsou vyřešena Listiterátorem.

závěr

v současné době se Iterator a ListItertaor cursor používají, protože jsou univerzálním kurzorem a jsou mnohem účinnější než výčet.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.