Raccomandato, 2024

Scelta Del Redattore

Differenza tra Iterator e ListIterator in Java

Iterator e ListIterator sono i due tra i tre cursori di Java. Sia Iterator che ListIterator sono definiti da Collection Framework nel pacchetto J ava.Util . ListIterator è l'interfaccia figlio dell'interfaccia Iterator. La differenza principale tra Iterator e ListIterator è che Iterator può attraversare gli elementi nella raccolta solo in direzione avanti, mentre ListIterator può attraversare gli elementi di una raccolta sia nella direzione avanti che indietro .

Cerchiamo di discutere alcune più differenze tra Iterator e ListIterator con l'aiuto del grafico di confronto mostrato di seguito.

Grafico comparativo

Base per il confrontoIteratorListIterator
Di baseIterator può attraversare gli elementi di una collezione solo in avanti.ListIterator può attraversare gli elementi di una raccolta sia in avanti che indietro.
InserisciIterator non è in grado di aggiungere elementi a una raccolta.ListIteror può aggiungere elementi a una raccolta.
ModificareIterator non può modificare gli elementi in una raccolta.ListIterator può modificare gli elementi di una raccolta usando set ().
AttraversareIterator può attraversare Map, List e Set.ListIterator può attraversare solo gli oggetti List.
IndiceIterator non ha alcun metodo per ottenere un indice dell'elemento in una raccolta.Utilizzando ListIterator, è possibile ottenere un indice dell'elemento in una raccolta.

Definizione di Iteratore

Iterator è un'interfaccia in un framework di raccolta . È usato per attraversare gli elementi della collezione. Iterator ti permette di iterare ogni elemento della collezione uno per uno, ottenere elementi dalla collezione o rimuovere elementi dalla collezione. È possibile notare che non è possibile modificare alcun elemento in una raccolta utilizzando Iterator.

Iterator ha un metodo iteratore () che restituisce l'iteratore all'inizio della raccolta. Una volta che si ottiene un iteratore all'inizio di una raccolta, per attraversare gli elementi nella raccolta si stabilisce un ciclo che chiama hasNext () ogni volta che il ciclo itera. HasNext () se restituisce true significa che l'elemento successivo è presente nella raccolta e se restituisce false significa che tutti gli elementi sono attraversati. Quindi all'interno del ciclo, puoi ottenere ogni elemento in una raccolta usando next () . Il metodo next () restituisce l'elemento successivo della raccolta.

Inconveniente:

Usando Iterator puoi attraversare una collezione solo nella direzione in avanti.
Usando Iterator, non puoi manipolare o modificare gli elementi in una raccolta.

Definizione di ListIterator

ListIterator è un'interfaccia in un framework Collection e estende l'interfaccia di Iterator . Utilizzando ListIterator, è possibile attraversare gli elementi della raccolta in entrambe le direzioni in avanti e indietro . È inoltre possibile aggiungere, rimuovere o modificare qualsiasi elemento nella raccolta. In breve, possiamo dire che rimuove gli inconvenienti di Iterator.

I metodi di ListIterator sono i seguenti:

hasNext () : se restituisce true conferma che ci sono più elementi in una raccolta.
next () : restituisce i successivi elementi della lista.
nextIndex () : restituisce l'indice degli elementi successivi nell'elenco.
hasPrevious () : restituisce true se nella raccolta sono presenti elementi nella direzione opposta.
previous () : restituisce l'elemento precedente in una raccolta.
previousIndex () : restituisce l'indice dell'elemento precedente in una raccolta.
remove () : elimina l'elemento da una raccolta.
set () : modifica l'elemento in una raccolta.
add () : aggiunge il nuovo elemento in una raccolta.

Differenze chiave tra Iterator e ListIterator

  1. La differenza fondamentale tra Iterator e ListIterator è che essendo entrambi i cursori, Iterator può attraversare elementi in una raccolta solo in direzione avanti. D'altra parte, ListIterator può attraversare in entrambe le direzioni avanti e indietro.
  2. Usando l'iteratore non è possibile aggiungere alcun elemento a una raccolta. Ma usando ListIterator puoi aggiungere elementi a una collezione.
  3. Utilizzando Iterator, non è possibile rimuovere un elemento in una raccolta in cui, come è possibile rimuovere un elemento da una raccolta utilizzando ListIterator.
  4. Usando Iterator puoi attraversare tutte le raccolte come Map, List, Set. Ma con ListIteror puoi attraversare solo gli oggetti implementati da List.
  5. Puoi recuperare un indice di un elemento usando Iterator. Ma poiché List è sequenziale e basato su indici, puoi recuperare un indice di un elemento nell'uso di ListIterator.

Conclusione:

Puoi usare ListIterator quando devi attraversare in modo particolare un oggetto List sia in avanti che in retromarcia. Altrimenti puoi utilizzare Iterator poiché supporta tutti gli oggetti di tipo collection.

Top