W Javie iterację po Mapie można wykonać na różne sposoby. Pamiętaj, że nie możemy bezpośrednio iterować po mapie za pomocą iteratory , ponieważ interfejs mapy nie jest częścią kolekcji. Wszystkie mapy w Java implementują Mapa interfejs. W Javie istnieją następujące typy map:
- HashMapa
- Mapa Drzewa
- Połączona mapa Hash
Mapa nie jest kolekcją, ale mimo to należy ją rozważyć w ramach kolekcji. Zatem Mapa jest interfejsem, który nie rozszerza interfejsu Kolekcji.
Iterator
Iterator to interfejs używany do iteracji po kolekcji. Zastępuje wyliczenie w Java Collections Framework. Różnica między iteratorem a wyliczeniem jest następująca:
- Iterator może przechodzić przez starsze i inne elementy, natomiast Enumeration może przechodzić tylko przez starsze elementy.
- Iterator jest odporny na awarie, podczas gdy wyliczenie nie jest odporne na awarie.
Widoki kolekcji
Metoda widoków kolekcji umożliwia przeglądanie mapy jako kolekcji w następujący sposób:
Interfejs mapy ma również mały zagnieżdżony interfejs o nazwie Wpis na mapie . Widok kolekcji stanowi jedyny sposób na iterację po mapie.
stół reakcji
Korzystanie z interfejsu Iteratora
Przykład iteracji po 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)); } } }
Wyjście:
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
Korzystanie z metody keyset() i value().
zestaw kluczy(): A zestaw kluczy() metoda HashMapa klasa służy do iteracji po kluczach zawartych na mapie. Zwraca widok zestawu klawiszy.
Składnia
czas trwania Javy
Set keyset()
wartości(): A wartości() metoda HashMapa klasa służy do iteracji po wartościach zawartych na mapie. Zwraca widok kolekcji wartości.
Składnia
Collection values()
Przykład
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); } }
Wyjście:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Korzystanie z metody Map.entrymethod
Map.Entry to interfejs. Zwraca widok kolekcji mapy, której elementy należą do tej klasy.
co to jest stos w Javie
Metoda map.entrySet() zwraca widok Set mapowania zawartego na mapie. Zmiany na mapie odzwierciedlają się także w zestawie i odwrotnie. Obsługuje również usuwanie elementów, które usuwa odpowiednie mapowanie z mapy.
Składnia
Set<map.entry> entrySet() </map.entry>
Przykład
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()); } } }
Wyjście:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteracja po kluczach i pobieranie wartości
Przykład
zmienne globalne js
W poniższym przykładzie najpierw iterujemy po kluczach, a następnie pobieramy wartości.
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); } } }
Wyjście:
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Korzystanie z metody forEach().
The dla każdego() metoda Lista tablic służy do wykonania akcji dla każdego elementu Iterable, dopóki wszystkie elementy nie zostaną przetworzone.
jak przekonwertować na ciąg
Składnia
public void forEach(Consumer action)
Metoda przyjmuje akcję (akcję, którą należy wykonać dla każdego elementu) jako parametr. To nic nie zwraca. Rzuca Wyjątek NullPointer jeśli określona akcja ma wartość null.
Przykład
W poniższym przykładzie używamy wyrażenia lambda wewnątrz metody forEach() do wydrukowania każdego elementu 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)); } }
Wyjście:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion