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:
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('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()); } } }
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('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); } } }
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('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)); } }
Výkon:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion