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:
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('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ý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('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ý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('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ýstup:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion