Recomandat, 2024

Alegerea Editorului

Diferența dintre Iterator și ListIterator în Java

Iteratorul și ListIterator sunt cele două dintre cele trei cursoare ale Java. Atât Iterator cât și ListIterator sunt definite prin Colectare cadru în J ava.Util pachet. ListIterator este interfața copil a interfeței Iterator. Diferența majoră dintre Iterator și ListIterator este că Iteratorul poate traversa elementele din colecție numai în direcția înainte, în timp ce ListIterator poate traversa elementele într-o colecție atât în direcția înainte, cât și înapoi .

Să discutăm câteva diferențe între Iterator și ListIterator cu ajutorul diagramei comparației de mai jos.

Diagramă de comparație

Bazele de comparațieiteratorListIterator
De bazăIteratorul poate traversa elementele într-o colecție numai în direcția înainte.ListIteratorul poate traversa elementele într-o colecție în direcția înainte și înapoi.
AdăugaIteratorul nu poate adăuga elemente într-o colecție.ListIteror poate adăuga elemente într-o colecție.
ModificaIteratorul nu poate modifica elementele dintr-o colecție.ListIterator poate modifica elementele dintr-o colecție utilizând set ().
TraversaIteratorul poate traversa hartă, listă și set.ListIteratorul poate traversa numai obiectele listate.
IndexIteratorul nu are nici o metodă de obținere a unui indice al elementului într-o colecție.Folosind ListIterator, puteți obține un index al elementului într-o colecție.

Definiția Iterator

Iteratorul este o interfață într-un cadru de colectare . Este folosit pentru a traversa prin elementele de colectare. Iteratorul vă permite să iterați fiecare element din colecție unul câte unul, să obțineți elemente din colecția sau să eliminați elementele din colecție. Puteți observa că nu puteți modifica niciun element dintr-o colecție utilizând Iterator.

Iteratorul are o metodă iterator () care returnează iteratorul la începutul colecției. Odată ce obțineți un iterator la începutul unei colecții, apoi să traversați elementele din colecție stabiliți o buclă care a apelurilor hasNext () de fiecare dată când se execută iterația . IfNext (), dacă returnează adevărat, înseamnă că următorul element există în colecție, iar dacă se întoarce false, înseamnă că toate elementele sunt traversate. Apoi, în interiorul buclă, puteți obține fiecare element într-o colecție utilizând următorul () . Metoda următoare () returnează următorul element al colecției.

Dezavantaj:

Folosind Iterator puteți traversa o colecție numai în direcția înainte.
Utilizând Iterator, nu puteți manipula sau modifica elementele dintr-o colecție.

Definiția ListIterator

ListIterator este o interfață într-un cadru de colecție și extinde interfața Iterator . Folosind ListIterator, puteți traversa elementele colecției atât în ​​direcția înainte cât și înapoi . De asemenea, puteți adăuga, elimina sau modifica orice element din colecție. Pe scurt, putem spune că elimină dezavantajele lui Iterator.

Metodele de listIterator sunt după cum urmează:

hasNext () : Dacă returns true confirmă că există mai multe elemente într-o colecție.
next () : Returnează elementele următoare ale listei.
nextIndex () : Returnează indexul elementelor următoare din listă.
hasPrevious () : Returnează true dacă există elemente în direcția inversă într-o colecție.
previous () : Returnează elementul anterior într-o colecție.
previousIndex () : Returnează indexul elementului anterior dintr-o colecție.
remove () : Ștergeți elementul dintr-o colecție.
set () : Modifică elementul într-o colecție.
add () : adaugă noul element într-o colecție.

Diferențe cheie între Iterator și ListIterator

  1. Diferența de bază dintre Iterator și ListIterator este că ambele fiind cursor, Iterator poate traversa elementele dintr-o colecție numai în direcția înainte. Pe de altă parte, ListIterator poate traversa atât în ​​direcția înainte cât și înapoi.
  2. Utilizând iteratorul, nu puteți adăuga niciun element într-o colecție. Dar, folosind ListIterator, puteți adăuga elemente într-o colecție.
  3. Folosind Iterator, nu puteți elimina un element dintr-o colecție unde, după cum puteți elimina un element dintr-o colecție utilizând ListIterator.
  4. Folosind Iterator puteți traversa toate colecțiile precum Map, List, Set. Dar, prin ListIteror, puteți traversa numai obiectele din listă implementate.
  5. Puteți extrage un index al unui element utilizând Iterator. Dar, pe măsură ce lista este secvențială și bazată pe index, puteți prelua un index al unui element folosind ListIterator.

Concluzie:

Puteți utiliza ListIterator atunci când trebuie să traversați în mod special un obiect List în direcția înainte și înapoi. Altfel puteți utiliza Iterator deoarece acceptă toate obiectele de colectare de tip.

Top