logo

Kako ponoviti mapu u Javi

U Javi se iteracija preko karte može izvesti na različite načine. Imajte na umu da ne možemo iterirati preko karte izravno koristeći iteratori , jer sučelje karte nije dio zbirke. Sve karte u Javi implementiraju Karta sučelje. U Javi postoje sljedeće vrste mapa:

  • HashMap
  • TreeMap
  • LinkedHashMap

Karta nije zbirka, ali ipak, razmotrite okvir Zbirke. Dakle, karta je sučelje koje ne proširuje sučelje zbirki.

Iterator

Iterator je sučelje koje se koristi za iteraciju preko kolekcije. Zauzima mjesto enumerationa u okviru Java Collections Framework. Razlika između iteratora i Enumerationa je:

  • Iterator može prelaziti naslijeđene i nenaslijeđene elemente, dok Enumeration može prelaziti samo naslijeđene elemente.
  • Iterator je fail-fast dok Enumeration nije fail-fast.

Prikazi zbirke

Metoda prikaza zbirke omogućuje prikaz karte kao zbirke na sljedeće načine:

    set ključeva:To je skup ključeva sadržanih u mapi.vrijednosti:To je skup vrijednosti sadržanih u karti.unosSet:To je skup parova ključ-vrijednost u mapi.

Sučelje karte također ima malo ugniježđeno sučelje tzv Karta.ulaz . Prikaz zbirke pruža jedino sredstvo za ponavljanje karte.

rezanje java

Korištenje sučelja Iteratora

Primjer iteracije preko HashMapa

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

Izlaz:

parametar u skripti ljuske
 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 

Korištenje metode keyset() i value().

set ključeva(): A KeySet() metoda od HashMap klasa se koristi za iteraciju preko ključeva sadržanih u mapi. Vraća pogled Set tipki.

Sintaksa

 Set keyset() 

vrijednosti(): A vrijednosti() metoda od HashMap klasa se koristi za ponavljanje preko vrijednosti sadržanih u mapi. Vraća prikaz zbirke vrijednosti.

Sintaksa

 Collection values() 

Primjer

jezgra java
 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); } } 

Izlaz:

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

Korištenje Map.entrymethod

Map.Entry je sučelje. Vraća prikaz zbirke karte, čiji su elementi ove klase.

Metoda map.entrySet() vraća pogled Set mapiranja sadržanog u karti. Promjene na karti također se odražavaju u Setu i obrnuto. Također podržava uklanjanje elementa, čime se uklanja odgovarajuće mapiranje s karte.

Sintaksa

npm instalacijska naredba
 Set<map.entry> entrySet() </map.entry>

Primjer

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

Izlaz:

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

Iteracija preko ključeva i dobivanje vrijednosti

Primjer

U sljedećem primjeru prvo ponavljamo ključeve, a zatim dobivamo vrijednosti.

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

Izlaz:

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

Korištenje metode forEach().

The za svakoga() metoda od ArrayList koristi se za izvođenje radnje za svaki element Iterable dok se svi elementi ne obrade.

Sintaksa

 public void forEach(Consumer action) 

Metoda uzima akciju (radnju koju treba izvršiti za svaki element) kao parametar. Ne vraća ništa. Baca se NullPointerException ako je navedena radnja nula.

sort arraylist java

Primjer

U sljedećem primjeru koristimo lambda izraz unutar metode forEach() za ispis svakog elementa mape.

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

Izlaz:

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