logo

Iteratore in Java

In Giava, un Iteratore è uno dei cursori Java. Iteratore Java è un'interfaccia utilizzata per eseguire l'iterazione su una raccolta di componenti di oggetti Java uno per uno. È gratuito da utilizzare nel linguaggio di programmazione Java a partire dal framework Java 1.2 Collection. Appartiene al pacchetto java.util.

Sebbene Java Iterator sia stato introdotto in Java 1.2, non è ancora lo strumento più vecchio disponibile per attraversare gli elementi dell'oggetto Collection. Il più vecchio Iterator nel linguaggio di programmazione Java è l'Enumerator, antecedente a Iterator. L'interfaccia Java Iterator succede all'iteratore enumeratore utilizzato all'inizio per attraversare alcune raccolte accessibili come ArrayLists.

L'iteratore Java è anche conosciuto come cursore universale di Java come si conviene a tutte le classi del framework Collection. Java Iterator aiuta anche nelle operazioni come READ e REMOVE. Quando confrontiamo l'interfaccia Java Iterator con l'interfaccia dell'iteratore di enumerazione, possiamo dire che i nomi dei metodi disponibili in Java Iterator sono più precisi e semplici da usare.

Vantaggi di Java Iterator

Iterator in Java è diventato molto diffuso grazie ai suoi numerosi vantaggi. I vantaggi di Java Iterator sono indicati come segue:

coppia C++
  • L'utente può applicare questi iteratori a qualsiasi classe del framework Collection.
  • In Java Iterator, possiamo utilizzare entrambe le operazioni di lettura e rimozione.
  • Se un utente sta lavorando con un ciclo for, non può modernizzare (aggiungere/rimuovere) la Collezione, mentre, se utilizza Java Iterator, può semplicemente aggiornare la Collezione.
  • Java Iterator è considerato il cursore universale per l'API di raccolta.
  • I nomi dei metodi in Java Iterator sono molto semplici e semplici da usare.

Svantaggi di Java Iterator

Nonostante i numerosi vantaggi, Java Iterator presenta anche diversi svantaggi. Gli svantaggi di Java Iterator sono riportati di seguito:

  • Java Iterator preserva solo l'iterazione nella direzione in avanti. In parole semplici, Java Iterator è un Iterator unidirezionale.
  • La sostituzione e l'estensione di un nuovo componente non sono approvate da Java Iterator.
  • Nelle operazioni CRUD, Java Iterator non supporta le varie operazioni come CREATE e UPDATE.
  • Rispetto a Spliterator, Java Iterator non supporta l'attraversamento degli elementi nel modello parallelo, il che implica che Java Iterator supporta solo l'iterazione sequenziale.
  • Rispetto a Spliterator, Java Iterator non supporta un'esecuzione più affidabile per attraversare la maggior parte del volume di dati.

Come utilizzare Java Iterator?

Quando un utente ha bisogno di utilizzare Java Iterator, è obbligatorio per lui creare un'istanza dell'interfaccia Iterator dalla raccolta di oggetti che desidera attraversare. Successivamente, l'iteratore ricevuto mantiene la traccia dei componenti nella raccolta sottostante per assicurarsi che l'utente attraversi ciascuno degli elementi della raccolta di oggetti.

Se l'utente modifica la raccolta sottostante mentre attraversa un Iterator che porta a quella raccolta, l'Iterator in genere lo riconoscerà e genererà un'eccezione la volta successiva in cui l'utente tenterà di ottenere il componente successivo dall'Iterator.

Metodi dell'iteratore Java

La figura seguente mostra perfettamente il diagramma delle classi dell'interfaccia Java Iterator. Contiene un totale di quattro metodi che sono:

  • haNext()
  • Prossimo()
  • rimuovere()
  • perOgniRimanente()

IL perOgniRimanente() è stato aggiunto in Java 8. Discutiamo ciascun metodo in dettaglio.

    booleano hasNext(): Il metodo non accetta alcun parametro. Restituisce vero se rimangono più elementi nell'iterazione. Se non sono rimasti più elementi, restituirà false.
    Se non rimangono più elementi nell'iterazione, non è necessario chiamare il metodo next(). In parole semplici, possiamo dire che il metodo viene utilizzato per determinare se il metodo next() deve essere chiamato o meno.E successivo():È simile al metodo hasNext(). Inoltre non accetta alcun parametro. Restituisce E, ovvero l'elemento successivo nell'attraversamento. Se l'iterazione o la raccolta di oggetti non ha più elementi da iterare, genera NoSuchElementException.rimozione void predefinita():Anche questo metodo non richiede alcun parametro. Non esiste un tipo di ritorno per questo metodo. La funzione principale di questo metodo è rimuovere l'ultimo elemento restituito dall'iteratore che attraversa la raccolta sottostante. Il metodo Remove() può essere richiesto difficilmente una volta per la successiva chiamata al metodo(). Se l'iteratore non supporta l'operazione di rimozione, genera UnSupportedOperationException. Inoltre lancia l'IllegalStateException se il metodo successivo non è ancora stato chiamato.void predefinito perEachRemaining(azione del consumatore):È l'unico metodo di Java Iterator che accetta un parametro. Accetta l'azione come parametro. L'azione non è altro che ciò che deve essere compiuto. Non esiste un tipo restituito del metodo. Questo metodo esegue l'operazione specificata su tutti i componenti di sinistra della raccolta finché tutti i componenti non vengono consumati o l'azione genera un'eccezione. Le eccezioni generate dall'azione vengono consegnate al chiamante. Se l'azione è nulla, genera un'eccezione NullPointerException.

Esempio di iteratore Java

Ora è il momento di eseguire un programma Java per illustrare i vantaggi dell'interfaccia Java Iterator. Il codice seguente produce un ArrayList di nomi di città. Successivamente inizializziamo un iteratore applicando il metodo iterator() dell'ArrayList. Successivamente, l'elenco viene attraversato per rappresentare ciascun elemento.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Produzione:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punti da ricordare

  • Java Iterator è un'interfaccia aggiunta al linguaggio di programmazione Java nel framework Java 1.2 Collection. Appartiene al pacchetto java.util.
  • È uno dei cursori Java utilizzati per attraversare gli oggetti del framework di raccolta.
  • Java Iterator viene utilizzato per ripetere i componenti dell'oggetto della raccolta uno per uno.
  • Il Java Iterator è noto anche come cursore universale di Java poiché è appropriato per tutte le classi del framework Collection.
  • Java Iterator supporta anche operazioni come READ e REMOVE.
  • I nomi dei metodi della classe Iterator sono molto semplici e facili da usare rispetto ai nomi dei metodi di Enumeration Iterator.