Iterácia nad mapou v Jave

1. Prehľad

V tomto rýchlom článku sa pozrieme na rôzne spôsoby iterácie cez položky Mapy v Jave.

Jednoducho povedané, môžeme extrahovať obsah mapy pomocou keySet (), valueSet () alebo entrySet (). Keďže ide o všetky množiny, pre všetky platia podobné zásady iterácie.

The Map.entrySet API vráti pohľad na mapu, ktorej prvky sú z Mapa trieda. Jediný spôsob, ako získať odkaz na jeden záznam mapy, je z iterátora tohto zobrazenia kolekcie.

T on entry.getKey () vráti kľúč a entry.getValue () vráti zodpovedajúcu hodnotu.

Pozrime sa na niekoľko z nich.

2. Sada položiek a pre Loop

Najprv sa pozrime, ako na to iterovať cez a Mapa pomocou VstupNastaviť:

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

Tu prevádzame našu mapu na množinu záznamov a potom ich iterujeme pomocou klasického prístupu pre každú z nich.

Ku kľúču každého záznamu môžeme získať zavolaním getKey () a k hodnote každého záznamu môžeme získať zavolaním getValue ().

3. Iterátor a Sada položiek

Ďalším prístupom by bolo získať množinu záznamov a vykonať iteráciu pomocou znaku Iterátor:

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

Všimnite si, ako môžeme získať Iterátor napríklad pomocou iterátor () API z entrySet (). Potom, ako obvykle, prechádzame iterátorom s iterator.next ().

4. S Lambdami

Pozrime sa teraz, ako iterovať a Mapa použitím lambda výrazy.

Rovnako ako väčšina ostatných vecí v prostredí Java 8 sa ukazuje, že je to oveľa jednoduchšie ako alternatívy; využijeme pre každý() metóda:

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

V takom prípade nemusíme mapu prevádzať na množinu záznamov. Ak sa chcete dozvedieť viac informácií o výrazoch lambda, môžete začať tu.

5. Prúd API

Prúd API je jednou z hlavných funkcií Java 8. Túto funkciu môžeme použiť na prepínanie medzi a Mapa rovnako, ale ako v predchádzajúcich príkladoch, musíme najskôr získať množinu záznamov:

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

To by sa malo použiť, keď plánujeme urobiť nejaké ďalšie Prúd spracovanie. Inak je to len jednoduché pre každý() ako je opísané vyššie.

Ak sa chcete dozvedieť viac o Prúd API, pozrite si tento článok.

6. Záver

V tomto tutoriáli sme sa zamerali na jednoduchú, ale kritickú operáciu - iteráciu cez záznamy mapy.

Videli sme niekoľko metód, ktoré je možné použiť iba v prostredí Java 8, a to výrazy Lambda a Prúd API.

Ako vždy, príklady kódov v článku nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found