Ponavljajte kartu na Javi

1. Pregled

U ovom ćemo kratkom članku pogledati različite načine ponavljanja kroz unose Mape u Javi.

Jednostavno rečeno, možemo izvući sadržaj Mape pomoću keySet (), valueSet () ili entrySet (). Budući da su to svi skupovi, za sve se primjenjuju slična načela ponavljanja.

The Map.entrySet API vraća kolekcijski prikaz karte čiji su elementi iz Karta razred. Jedini način da se dobije referenca na jedan unos karte je iz iteratora ovog prikaza zbirke.

T on entry.getKey () vraća ključ i entry.getValue () vraća odgovarajuću vrijednost.

Pogledajmo nekoliko njih.

2. EntrySet i za Loop

Prvo, da vidimo kako ponoviti kroz Karta koristiti UlazakPostavi:

public void iterateUsingEntrySet (Map map) {for (Map.Entry entry: map.entrySet ()) {System.out.println (entry.getKey () + ":" + entry.getValue ()); }}

Ovdje pretvaramo našu kartu u skup unosa, a zatim ih prelazimo koristeći klasični pristup za svaki pojedini pristup.

Ključu svakog unosa možemo pristupiti pozivom getKey () a vrijednosti svakog unosa možemo pristupiti pozivom getValue ().

3. Iterator i EntrySet

Drugi pristup bio bi dobivanje niza unosa i izvođenje iteracije pomoću Iterator:

public void iterateUsingIteratorAndEntry (karta karte) {Iterator iterator = map.entrySet (). iterator (); while (iterator.hasNext ()) {Map.Entry entry = iterator.next (); System.out.println (entry.getKey () + ":" + entry.getValue ()); }}

Primijetite kako možemo dobiti Iterator primjer pomoću iterator () API od entrySet (). Zatim, kao i obično, kružimo kroz iterator s iterator.next ().

4. S Lambdama

Pogledajmo sada kako ponoviti a Karta koristeći lambda izrazi.

Kao i većina drugih stvari u Javi 8, ovo se pokazalo puno jednostavnijim od alternativa; iskoristit ćemo za svakoga() metoda:

public void iterateUsingLambda (karta karte) {map.forEach ((k, v) -> System.out.println ((k + ":" + v))); } 

U ovom slučaju ne moramo pretvoriti kartu u skup unosa. Da biste saznali više o lambda izrazima, možete započeti ovdje.

5. Stream API

Stream API je jedna od glavnih značajki Java 8. Ovu značajku možemo koristiti za petlju kroz Karta također, ali kao i u prethodnim primjerima, prvo moramo dobiti skup unosa:

public void iterateUsingStreamAPI (karta karte) {map.entrySet (). stream () // ... .forEach (e -> System.out.println (e.getKey () + ":" + e.getValue ()) ); } 

To bi trebalo koristiti kad planiramo učiniti nešto dodatno Stream obrada. Inače je jednostavno za svakoga() kako je prethodno opisano.

Da biste saznali više o Stream API, pogledajte ovaj članak.

6. Zaključak

U ovom smo se vodiču usredotočili na jednostavnu, ali kritičnu operaciju - iteraciju kroz unose karte.

Vidjeli smo nekoliko metoda koje se mogu koristiti samo s Javom 8, a to su Lambda izrazi i Stream API.

Kao i uvijek, primjeri koda u članku mogu se naći na GitHubu.