logo

Hur man itererar karta i Java

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:

    keySet:Det är uppsättningen nycklar som finns i kartan.värden:Det är samlingen av värden som finns i kartan.entrySet:Det är en uppsättning nyckel-värdepar i kartan.

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(&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()); } } } 

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(&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); } } } 

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(&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)); } } 

Produktion:

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