logo

Ako iterovať mapu v Jave

V Jave je možné iteráciu cez Map vykonať rôznymi spôsobmi. Pamätajte, že nemôžeme iterovať cez mapu priamo pomocou iterátorov , pretože Mapové rozhranie nie je súčasťou Collection. Všetky mapy v implementácii Java Mapa rozhranie. V jazyku Java existujú nasledujúce typy máp:

  • HashMap
  • Stromová mapa
  • LinkedHashMap

Mapa nie je zbierka, ale stále ju zvážte v rámci zbierok. Mapa je teda rozhranie, ktoré nerozširuje rozhranie kolekcií.

Iterátor

Iterátor je rozhranie používané na iteráciu kolekcie. Zaberá miesto Enumeration v Java Collections Framework. Rozdiel medzi iterátorom a enumeráciou je:

  • Iterátor môže prechádzať starými a nestarými prvkami, zatiaľ čo Enumerácia môže prechádzať iba staršími prvkami.
  • Iterátor je rýchly, zatiaľ čo Enumerácia nie je rýchly.

Zobrazenia zbierky

Metóda zobrazenia kolekcie umožňuje zobrazenie mapy ako kolekcie nasledujúcimi spôsobmi:

    sada kľúčov:Je to súbor kľúčov obsiahnutých na mape.hodnoty:Je to súbor hodnôt obsiahnutých v mape.entrySet:Je to množina párov kľúč – hodnota na mape.

Rozhranie mapy má tiež malé vnorené rozhranie tzv Vstup na mapu . Zobrazenie kolekcie poskytuje jediný spôsob iterácie mapy.

plávať na šnúru

Použitie rozhrania Iterator

Príklad iterácie cez 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ýkon:

 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žitie metódy keyset() a value().

keyset(): A keySet() spôsob HashMap trieda sa používa na iteráciu kľúčov obsiahnutých v mape. Vráti zobrazenie Set kľúčov.

Syntax

linuxové skratky
 Set keyset() 

hodnoty(): A hodnoty() spôsob HashMap trieda sa používa na iteráciu hodnôt obsiahnutých v mape. Vráti pohľad na kolekciu hodnôt.

Syntax

 Collection values() 

Prí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ýkon:

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

Pomocou metódy Map.entry

Map.Entry je rozhranie. Vráti kolekciu zobrazenia mapy, ktorej prvky patria do tejto triedy.

ako stiahnuť video z youtube vlc

Metóda map.entrySet() vráti zobrazenie Set mapovania obsiahnutého v mape. Zmeny na mape sa prejavia aj v Set a naopak. Podporuje tiež odstránenie prvkov, ktoré z mapy odstráni zodpovedajúce mapovanie.

Syntax

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

Prí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ýkon:

 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Iterácia kľúčov a získavanie hodnôt

Príklad

súbor json

V nasledujúcom príklade najprv iterujeme kľúče a potom získame 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ýkon:

 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

Použitie metódy forEach().

The pre každý() spôsob ArrayList sa používa na vykonanie akcie pre každý prvok Iterable, kým nie sú spracované všetky prvky.

nekonečná slučka

Syntax

 public void forEach(Consumer action) 

Metóda berie akciu (akciu, ktorá sa má vykonať pre každý prvok) ako parameter. Nevracia nič. To hádže Výnimka NullPointerException ak je zadaná akcia nulová.

Príklad

V nasledujúcom príklade používame výraz lambda v metóde forEach() na tlač 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ýkon:

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