logo

Jak iterować mapę w Javie

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:

    zestaw kluczy:Jest to zestaw kluczy zawartych na Mapie.wartości:Jest to zbiór wartości zawartych na mapie.zestaw wpisów:Jest to zestaw par klucz-wartość na mapie.

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

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

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

Wyjście:

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