A Java, la iteració sobre Map es pot fer de diverses maneres. Recordeu que no podem iterar sobre el mapa utilitzant directament iteradors , perquè la interfície del mapa no forma part de la col·lecció. Tots els mapes en implements de Java Mapa interfície. Hi ha els següents tipus de mapes a Java:
- HashMap
- TreeMap
- LinkedHashMap
Un mapa no és una col·lecció, però, tot i així, tingueu en compte el marc de col·leccions. Per tant, un mapa és una interfície que no amplia la interfície de les col·leccions.
Iterador
Un iterador és una interfície utilitzada per iterar sobre una col·lecció. Pren el lloc de l'enumeració a Java Collections Framework. La diferència entre iterador i enumeració és:
- L'iterador pot travessar elements heretats i no heretats, mentre que l'enumeració només pot travessar elements heretats.
- L'iterador és ràpid de fallar mentre que l'enumeració no és ràpid de falla.
Visualitzacions de la col·lecció
El mètode de visualitzacions de col·lecció permet veure un mapa com a col·lecció de les maneres següents:
La interfície del mapa també té una petita interfície imbricada anomenada Mapa.entrada . La vista de col·lecció proporciona l'únic mitjà per iterar sobre un mapa.
dreceres de Linux
Utilitzant la interfície Iterator
Exemple d'iteració sobre HashMap
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)); } } }
Sortida:
què és rom
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
Utilitzant el mètode keyset() i value().
joc de claus (): A keySet() mètode de HashMap La classe s'utilitza per a la iteració sobre les claus contingudes al mapa. Retorna la vista Set de les tecles.
Sintaxi
Set keyset()
valors (): A valors () mètode de HashMap La classe s'utilitza per a la iteració sobre els valors continguts al mapa. Retorna una vista de col·lecció dels valors.
Sintaxi
Collection values()
Exemple
"Quina diferència hi ha entre un lleó i un tigre"
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); } }
Sortida:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Utilitzant Map.entrymethod
Map.Entry és una interfície. Retorna una vista de col·lecció del mapa, els elements del qual són d'aquesta classe.
Un mètode map.entrySet() retorna una vista Set de la mapatge continguda al mapa. Els canvis en el mapa també es reflecteixen en el conjunt i viceversa. També admet l'eliminació d'elements, que elimina el mapa corresponent del mapa.
Sintaxi
declaració java switch
Set<map.entry> entrySet() </map.entry>
Exemple
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()); } } }
Sortida:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteració sobre claus i obtenció de valors
Exemple
A l'exemple següent, primer iterem sobre les claus i després obtenim els valors.
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); } } }
Sortida:
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Utilitzant el mètode forEach().
El per cadascú() mètode de ArrayList s'utilitza per dur a terme una acció per a cada element de l'iterable fins que s'han processat tots els elements.
Sintaxi
public void forEach(Consumer action)
El mètode pren l'acció (l'acció a realitzar per a cada element) com a paràmetre. No retorna res. Es tira NullPointerException si l'acció especificada és nul·la.
Com obtenir emojis d'iPhone a Android
Exemple
A l'exemple següent, estem utilitzant l'expressió lambda dins del mètode forEach() per imprimir cada element del mapa.
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)); } }
Sortida:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion