logo

Jak iterovat mapu v Javě

V Javě lze iteraci přes Map provádět různými způsoby. Pamatujte, že nemůžeme iterovat přes mapu přímo pomocí iterátory , protože Mapové rozhraní není součástí Collection. Všechny mapy v Java implementuje Mapa rozhraní. V Javě existují následující typy map:

  • HashMap
  • Stromová mapa
  • LinkedHashMap

Mapa není sbírka, ale přesto ji zvažte v rámci sbírek. Mapa je tedy rozhraní, které nerozšiřuje rozhraní kolekcí.

Iterátor

Iterátor je rozhraní používané pro iteraci kolekce. Zaujímá místo Enumeration v Java Collections Framework. Rozdíl mezi iterátorem a Enumerací je:

  • Iterátor může procházet staršími a nestaršími prvky, zatímco výčet může procházet pouze staršími prvky.
  • Iterátor je rychlý při selhání, zatímco Enumeration není rychlý.

Zobrazení sbírky

Metoda zobrazení kolekce umožňuje zobrazení mapy jako kolekce následujícími způsoby:

    sada klíčů:Je to sada klíčů obsažená v mapě.hodnoty:Je to soubor hodnot obsažených v mapě.entrySet:Je to sada párů klíč–hodnota v mapě.

Rozhraní mapy má také malé vnořené rozhraní tzv Vstup na mapu . Zobrazení kolekce poskytuje jediný způsob iterace mapy.

složení vztahu

Použití rozhraní Iterator

Příklad iterace přes 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)); } } } 

Výstup:

 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 

Použití metody keyset() a value().

keyset(): A keySet() metoda HashMap třída se používá pro iteraci přes klíče obsažené v mapě. Vrátí zobrazení nastavení kláves.

Syntax

 Set keyset() 

hodnoty(): A hodnoty() metoda HashMap třída se používá pro iteraci hodnot obsažených v mapě. Vrátí zobrazení kolekce hodnot.

zarovnání obrázků v css

Syntax

 Collection values() 

Příklad

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

Výstup:

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

Pomocí Map.entrymethod

Map.Entry je rozhraní. Vrací pohled kolekce mapy, jejíž prvky patří do této třídy.

Metoda map.entrySet() vrací zobrazení Set mapování obsaženého v mapě. Změny v mapě se projeví i v Setu a naopak. Podporuje také odstranění prvků, které odstraní odpovídající mapování z mapy.

číst z csv java

Syntax

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

Příklad

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

Výstup:

jak spárovat sluchátka beats
 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Iterace přes klíče a získávání hodnot

Příklad

V následujícím příkladu nejprve iterujeme klíče a poté získáme hodnoty.

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

Výstup:

řetězec.hodnota
 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

Použití metody forEach().

The pro každého() metoda ArrayList se používá k provedení akce pro každý prvek Iterable, dokud nejsou zpracovány všechny prvky.

Syntax

 public void forEach(Consumer action) 

Metoda bere jako parametr akci (akci, která má být provedena pro každý prvek). Nic to nevrací. To hází Výjimka NullPointerException pokud je zadaná akce nulová.

Příklad

V následujícím příkladu používáme výraz lambda uvnitř metody forEach() k tisku každého prvku mapy.

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

Výstup:

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