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:
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('Cookies', 90.87f); map.put('Dry Fruits', 434.23f); map.put('Oats', 220.00f); map.put('Chocolate', 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println('Item: ' + entry.getKey() + ', Price: ' + 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('Sumit', 'Singh'); map.put('Devesh', 'Mishra'); map.put('Rahul', 'Tiwari'); 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('Key: ' + name + ', Value: ' + 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('TCS', '0 billion'); map.put('Wipro', '.5 billion'); //iteration over map using forEach() method map.forEach((k,v) -> System.out.println('Company: '+ k + ', Net worth: ' + v)); } }
Produzione:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion