Iterer over et kort i Java

1. Oversigt

I denne hurtige artikel vil vi se på de forskellige måder at gentage gennem posterne på et kort i Java.

Kort sagt, vi kan udtrække indholdet af et kort ved hjælp af keySet (), valueSet () eller entrySet (). Da disse er alle sæt, gælder lignende iterationsprincipper for dem alle.

Det Map.entrySet API returnerer en samlingsvisning af kortet, hvis elementer er fra Kort klasse. Den eneste måde at få en henvisning til en enkelt kortindgang er fra iteratoren for denne samlingsvisning.

Det entry.getKey () returnerer nøglen og entry.getValue () returnerer den tilsvarende værdi.

Lad os se på et par af disse.

2. Indgangssæt og til Loop

Lad os først se, hvordan man gør det gentage gennem en Kort bruger IndgangSæt:

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

Her konverterer vi vores kort til et sæt poster og gentager derefter dem ved hjælp af den klassiske for-hver tilgang.

Vi kan få adgang til en nøgle for hver post ved at ringe getKey () og vi kan få adgang til en værdi af hver post ved at ringe getValue ().

3. Iterator og Indgangssæt

En anden tilgang ville være at få et sæt poster og udføre iteration ved hjælp af en Iterator:

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

Læg mærke til, hvordan vi kan få Iterator eksempel ved hjælp af iterator () API af entrySet (). Derefter løber vi som sædvanlig gennem iteratoren med iterator.next ().

4. Med Lambdas

Lad os nu se, hvordan man gentager en Kort ved brug af lambda udtryk.

Som de fleste andre ting i Java 8 viser det sig at være meget enklere end alternativerne; vi gør brug af for hver() metode:

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

I dette tilfælde behøver vi ikke konvertere et kort til et sæt poster. For at lære mere om lambda-udtryk, kan du starte her.

5. Strøm API

Strøm API er en af ​​de vigtigste funktioner i Java 8. Vi kan bruge denne funktion til at løbe gennem en Kort også, men som i tidligere eksempler skal vi først få et sæt poster:

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

Dette skal bruges, når vi planlægger at gøre noget ekstra Strøm forarbejdning. Ellers er det bare et simpelt for hver() som beskrevet tidligere.

For at lære mere om Strøm API, tjek denne artikel.

6. Konklusion

I denne vejledning har vi fokuseret på en enkel, men kritisk operation - iterering gennem indtastningerne på et kort.

Vi har set et par metoder, som kun kan bruges med Java 8, nemlig Lambda-udtryk og Strøm API.

Som altid kan kodeeksemplerne i artiklen findes på GitHub.


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