Iterál egy Java-térképen

1. Áttekintés

Ebben a rövid cikkben az iteráció különböző módjait vesszük szemügyre a Java Java-bejegyzésein keresztül.

Egyszerűen fogalmazva, a Map tartalmát kinyerhetjük keySet (), valueSet () vagy entrySet (). Mivel ezek mind halmazok, mindegyikre hasonló iterációs elvek érvényesek.

A Map.entrySet Az API visszaadja a térkép gyűjteményének nézetét, amelynek elemei a Térkép osztály. Az egyetlen térkép-bejegyzésre való hivatkozás egyetlen módja ennek a gyűjtemény-nézetnek az iterátora.

A entry.getKey () visszaadja a kulcsot és entry.getValue () a megfelelő értéket adja vissza.

Vessünk egy pillantást ezekre.

2. EntrySet és a Loop számára

Először nézzük meg, hogyan kell iterálni a Térkép használni a BelépésKészlet:

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

Itt térképünket konvertáljuk bejegyzések halmazává, majd ezeken keresztül iterálunk a klasszikus for-each megközelítéssel.

Minden bejegyzés kulcsához felhívással férhetünk hozzá getKey () és minden bejegyzés értékét elérhetjük hívással getValue ().

3. Iterátor és EntrySet

Egy másik megközelítés az lenne, ha egy bejegyzéskészletet kapna, és az iterációt végrehajtaná egy Iterátor:

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

Figyelje meg, hogyan kaphatjuk meg a Iterátor például a iterátor () API-ja entrySet (). Ezután, mint általában, végigpörgetjük az iterátort iterator.next ().

4. Lambdasszal

Most nézzük meg, hogyan kell iterálni a Térkép felhasználásával lambda kifejezések.

A Java 8 legtöbb dolgához hasonlóan ez is sokkal egyszerűbbnek bizonyul, mint az alternatívák; ki fogjuk használni a az egyes() módszer:

public void iterateUsingLambda (Térképtérkép) {map.forEach ((k, v) -> System.out.println ((k + ":" + v))); } 

Ebben az esetben nem kell térképet konvertálnunk bejegyzések halmazává. Ha többet szeretne megtudni a lambda kifejezésekről, itt kezdheti.

5. Folyam API

Folyam Az API az egyik fő jellemzője Java 8. Használhatjuk ezt a funkciót a Térkép ugyanúgy, mint az előző példákban, először is bejegyzéskészletet kell beszereznünk:

public void iterateUsingStreamAPI (Térképtérkép) {map.entrySet (). stream () // ... .forEach (e -> System.out.println (e.getKey () + ":" + e.getValue ()) ); } 

Ezt akkor kell használni, ha további kiegészítéseket tervezünk Folyam feldolgozás. Egyébként ez csak egyszerű az egyes() a korábban leírtak szerint.

További információkért Folyam API, nézze meg ezt a cikket.

6. Következtetés

Ebben az oktatóanyagban egy egyszerű, de kritikus műveletre összpontosítottunk - iterálás a térkép bejegyzésein keresztül.

Láttunk pár módszert, amelyek csak a Java 8-nál használhatók, nevezetesen a Lambda kifejezéseket és a Folyam API.

Mint mindig, a cikkben szereplő kód példák megtalálhatók a GitHubon.