diferența dintre Iterator și enumerare interfață în Java

Iterator vs enumerare cele trei cursoare care sunt utilizate pentru a accesa elementele din orice colecție unul câte unul sunt enumerare, Iterator și ListIterator. Deși, Iterator și Enumerator sunt destinate pentru efectuarea aceeași lucrare. Totuși, ele sunt distincte unele de altele în sensul că enumerarea are acces numai în citire la elementele din colecție. Pe de altă parte, Iterator poate citi, precum și elimina elementele din colecție.

diferența importantă dintre Iterator și enumerare este că enumerarea nu poate fi aplicată pe clasele de colectare, ci se aplică numai pe clasele moștenite. Pe de altă parte, Iteratorul este aplicabil claselor de colectare, prin urmare, este denumit cursor universal. Să învățăm mai multe diferențe între Iterator și enumerare cu ajutorul graficului de comparație prezentat mai jos.

conținut: Iterator vs enumerare

  1. diagramă comparație
  2. definiție
  3. diferențe cheie
  4. concluzie

diagramă comparație

baza pentru comparație Iterator enumerare
de bază Iterator este un cursor universal, deoarece este aplicabil pentru toate clasele de colectare. enumerarea nu este un cursor universal, deoarece se aplică numai claselor moștenite.
acces folosind Iterator puteți citi și elimina elementele din colecție. folosind enumerarea puteți citi numai elementele din colecție.
metode public Boolean hasnext();
public objects next();
public void remove();
public boolean hasmoreelements ();
public object nextElement();
limitare Iterator este un cursor de acces înainte unidirecțional.
Iterator nu poate înlocui orice element din colecția.
Iterator nu poate adăuga nici un element nou în colecția.
enumerarea este cursor de acces înainte unidirecțional.
suport enumerare numai clase moștenite.
enumerarea are acces numai în citire la elementele dintr-o colecție.
depăși pentru a depăși limitările Iterator trebuie să opteze pentru ListIterator. pentru a depăși limitările de enumerare trebuie să opteze pentru Iterator.

definiția interfață Iterator

Iterator este o interfață în cadrul de colectare. Ca Iterator se aplică tuturor claselor de colectare, este menționată ca un cursor universal. Este cursorul folosit pentru a accesa elementele din colecție unul câte unul. Folosind Iterator, puteți prelua elementele din colecție și, dacă doriți, puteți elimina și elementele din colecție. Obiectul Iterator poate fi creat după cum este prezentat mai jos.

Iterator itr = Collc.iterator();

variabila itr este un obiect de Iterator. Collc este orice obiect de colecție care urmează să fie ciclat sau iterat folosind obiectul (itr) al Iteratorului. Iterator () este metoda utilizată pentru a crea un obiect iterator. Există trei metode în Iterator așa cum se arată mai jos.

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

prima metodă hasnext() verifică dacă colecția are elemente în ea sau nu. În cazul în care colecția are elementele, se va întoarce true else va reveni false. A doua metodă next() este utilizată pentru a prelua următorul element din colecție. A treia metodă remove () este utilizată pentru a șterge elementele din colecție.

Iterator poate călători într-o colecție numai în direcția înainte nu se poate deplasa înapoi în timp ce călătoresc. Iterator poate elimina elementul din colecție, dar nu are capacitatea de a înlocui orice element existent cu un element nou și nici nu poate adăuga niciun element nou în colecție. Pentru a depăși aceste limitări puteți merge pentru interfață ListIterator.

definiția interfeței de enumerare

enumerarea este interfața aplicabilă claselor moștenite și nu poate fi aplicată niciunei clase de colecție. Prin urmare, nu este un cursor universal. Enumerarea preia elementul (obiectul) din colecție unul câte unul. Obiectul enumerare are acces numai în citire la elementele colecției. Obiect enumerarea nu se poate schimba nici un element din colecția. Să vedem cum de a crea obiect enumerare, au o privire.

Enumeration er = Vect.elements();

variabila er este un obiect de enumerare. Vect este obiectul clasei vectoriale care trebuie traversat de obiectul (er) enumerării. Elementul metodă () este utilizat pentru a crea un obiect de enumerare. Există doar două metode în interfața de enumerare așa cum se arată mai jos.

public boolean hasMoreElements();public nextElement();

prima metodă hasMoreElements() este utilizată pentru a verifica starea colecției dacă are elementele în ea sau este goală. Dacă colecția are elementele, metoda hasmoreelements () returnează true else returnează false. A doua metodă nextElement() este utilizată pentru a prelua elementele din colecție unul câte unul.

când traversarea este completă, metoda nextElement() aruncă NoSuchElementException. Obiectul enumerare se deplasează numai în direcția înainte. Nu poate adăuga sau elimina sau înlocui orice element din colecție. Pentru a depăși aceste limitări ale enumerării, trebuie să optați pentru Iterator.

diferențe cheie între Iterator și enumerare în Java

  1. principala diferență între Iterator și enumerare este că Iterator este un cursor universal, poate fi folosit pentru iterarea orice obiect de colectare. Pe de altă parte, enumerarea este utilizată numai pentru traversarea obiectului clasei legacy.
  2. obiect enumerare are doar read-only acces la elementele din colecție. Cu toate acestea, obiectul Iterator poate citi și elimina elementele din colecție.
  3. există două metode de iterator una pentru a verifica starea colecției și una pentru a prelua elementele din colecție. În plus față de metodele de enumerare Iterator are o metodă mai mult pentru a elimina elementele din colecția.
  4. limitările de enumerare sunt este cursor unidirecțional înainte, are acces numai în citire, și poate fi aplicat la clasele de colectare. Pe de altă parte, Iterator nu poate înlocui sau adăuga orice element nou în colecția și ca enumerare sa, de asemenea, înainte cursorul unidirecțional.
  5. limitarea enumerării este rezolvată de Iterator, iar limitările Iteratorului sunt rezolvate de ListIterator.

concluzie

in zilele noastre, Iterator și ListItertaor cursor sunt folosite ca acestea sunt cursorul universal și sunt mult mai eficiente decât enumerare.

Lasă un răspuns

Adresa ta de email nu va fi publicată.