I Java kan iteration över Map göras på olika sätt. Kom ihåg att vi inte kan iterera över kartan direkt med hjälp av iteratorer , eftersom kartgränssnittet inte är en del av samlingen. Alla kartor i Java implementerar Karta gränssnitt. Det finns följande typer av kartor i Java:
- HashMap
- Trädkarta
- LinkedHashMap
En karta är inte en samling men överväg ändå under samlingsramen. Därför är en karta ett gränssnitt som inte utökar samlingsgränssnittet.
Iterator
En iterator är ett gränssnitt som används för att iterera över en samling. Det tar platsen för uppräkning i Java Collections Framework. Skillnaden mellan iterator och uppräkning är:
- Iteratorn kan passera äldre och icke-legacy element medan Enumeration endast kan passera äldre element.
- Iterator är felsnabb medan uppräkning inte är felsnabb.
Samlingsvyer
Metoden för samlingsvyer gör att en karta kan ses som en samling på följande sätt:
Kartgränssnittet har också ett litet kapslat gränssnitt som kallas Map.entry . Samlingsvyn är det enda sättet att iterera över en karta.
'eulers nummer i java'
Använder Iterator-gränssnittet
Exempel på iteration över 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)); } } }
Produktion:
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
Använder metoderna keyset() och value().
keyset(): A keySet() metod av HashMap klass används för iteration över nycklarna som finns i kartan. Den returnerar tangenternas Set-vy.
Syntax
Set keyset()
värden(): A värden() metod av HashMap klass används för iteration över värdena som finns i kartan. Det returnerar en samlingsvy av värdena.
justera bilden med css
Syntax
Collection values()
Exempel
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); } }
Produktion:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Använder Map.entrymethod
Map.Entry är ett gränssnitt. Den returnerar en samlingsvy av kartan, vars element är av denna klass.
En map.entrySet()-metod returnerar en Set-vy av mappningen som finns i kartan. Förändringarna i kartan återspeglas i uppsättningen också och vice versa. Den stöder också borttagning av element, vilket tar bort motsvarande mappning från kartan.
np.argmax
Syntax
Set<map.entry> entrySet() </map.entry>
Exempel
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()); } } }
Produktion:
vända strängen i java
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteration över nycklar och få värden
Exempel
I följande exempel itererar vi först över nycklarna och hämtar sedan värdena.
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); } } }
Produktion:
alfabet och siffror
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Använder metoden forEach().
De för varje() metod av ArrayList används för att utföra en åtgärd för varje element i Iterable tills alla element har bearbetats.
Syntax
public void forEach(Consumer action)
Metoden tar åtgärd (åtgärden som ska utföras för varje element) som en parameter. Det ger inget tillbaka. Det kastar NullPointerException om den angivna åtgärden är null.
Exempel
I följande exempel använder vi lambda-uttryck i metoden forEach() för att skriva ut varje element i kartan.
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)); } }
Produktion:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion