logo

Come iterare la mappa in Java

In Java, l'iterazione su Map può essere eseguita in vari modi. Ricorda che non possiamo eseguire l'iterazione sulla mappa utilizzando direttamente iteratori , perché l'interfaccia della mappa non fa parte di Collection. Tutte le mappe in Java implementano Carta geografica interfaccia. Esistono i seguenti tipi di mappe in Java:

  • HashMap
  • Mappa ad albero
  • LinkedHashMap

Una mappa non è una raccolta, ma va comunque considerata nel quadro delle Collezioni. Pertanto, una mappa è un'interfaccia che non estende l'interfaccia delle raccolte.

Iteratore

Un iteratore è un'interfaccia utilizzata per scorrere una raccolta. Prende il posto dell'enumerazione in Java Collections Framework. La differenza tra iteratore ed enumerazione è:

  • L'Iterator può attraversare elementi legacy e non legacy mentre l'Enumerazione può attraversare solo elementi legacy.
  • Iterator è fail-fast mentre l'enumerazione non è fail-fast.

Visualizzazioni della raccolta

Il metodo delle visualizzazioni della raccolta consente di visualizzare una mappa come una raccolta nei seguenti modi:

    mazzo di chiavi:È l'insieme delle chiavi contenute nella Mappa.valori:È l'insieme dei valori contenuti nella Mappa.set di voci:È un insieme di coppie chiave-valore nella mappa.

L'interfaccia Mappa ha anche una piccola interfaccia nidificata chiamata Immissione.mappa . La visualizzazione della raccolta fornisce l'unico mezzo per eseguire l'iterazione su una mappa.

Giochi iMessage per Android

Utilizzando l'interfaccia Iterator

Esempio di iterazione su HashMap

cento contro rhel
 public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } } 

Produzione:

 Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi 

Utilizzando il metodo keyset() e value()

mazzo di chiavi(): UN mazzo di chiavi() metodo di HashMap class viene utilizzata per l'iterazione sulle chiavi contenute nella mappa. Restituisce la vista Set delle chiavi.

Sintassi

 Set keyset() 

valori(): UN valori() metodo di HashMap La classe viene utilizzata per l'iterazione sui valori contenuti nella mappa. Restituisce una visualizzazione della raccolta dei valori.

Sintassi

contare distinti
 Collection values() 

Esempio

 import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } } 

Produzione:

 State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow 

Utilizzando Map.entrymethod

Map.Entry è un'interfaccia. Restituisce una vista raccolta della mappa, i cui elementi appartengono a questa classe.

Un metodo map.entrySet() restituisce una vista Set della mappatura contenuta nella mappa. I cambiamenti nella mappa si riflettono anche nel Set e viceversa. Supporta anche la rimozione degli elementi, che rimuove la mappatura corrispondente dalla mappa.

Sintassi

 Set<map.entry> entrySet() </map.entry>

Esempio

vuoto 0
 import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Cookies&apos;, 90.87f); map.put(&apos;Dry Fruits&apos;, 434.23f); map.put(&apos;Oats&apos;, 220.00f); map.put(&apos;Chocolate&apos;, 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println(&apos;Item: &apos; + entry.getKey() + &apos;, Price: &apos; + entry.getValue()); } } } 

Produzione:

 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Iterazione sulle chiavi e acquisizione di valori

Esempio

Nell'esempio seguente iteriamo prima sulle chiavi e poi otteniamo i valori.

 import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Sumit&apos;, &apos;Singh&apos;); map.put(&apos;Devesh&apos;, &apos;Mishra&apos;); map.put(&apos;Rahul&apos;, &apos;Tiwari&apos;); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println(&apos;Key: &apos; + name + &apos;, Value: &apos; + lastname); } } } 

Produzione:

 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

Utilizzando il metodo forEach()

IL per ciascuno() metodo di Lista di array viene utilizzato per eseguire un'azione per ciascun elemento dell'Iterable finché tutti gli elementi non sono stati elaborati.

Sintassi

 public void forEach(Consumer action) 

Il metodo prende come parametro l'azione (l'azione da eseguire per ciascun elemento). Non restituisce nulla. Lancia NullPointerException se l'azione specificata è nulla.

Esempio

eredità in Java

Nell'esempio seguente, utilizziamo l'espressione lambda all'interno del metodo forEach() per stampare ogni elemento della mappa.

 import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;TCS&apos;, &apos;0 billion&apos;); map.put(&apos;Wipro&apos;, &apos;.5 billion&apos;); //iteration over map using forEach() method map.forEach((k,v) -&gt; System.out.println(&apos;Company: &apos;+ k + &apos;, Net worth: &apos; + v)); } } 

Produzione:

 Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion