Konverter et kort til en matrix, liste eller sæt i Java

1. Oversigt

Denne korte artikel viser, hvordan man gør det konvertere værdierne for en Kort til en Array, -en Liste eller a Sæt ved hjælp af almindelig Java samt et hurtigt Guava-baseret eksempel.

Denne artikel er en del af "Java - Back to Basic" -serien her på Baeldung.

2. Kortlæg værdier til matrix

Lad os først se på at konvertere værdierne på kortet til en matrix, ved hjælp af almindelig java:

@Test offentlig ugyldighed givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect () {Map sourceMap = createMap (); Samlingsværdier = sourceMap.values ​​(); String [] targetArray = values.toArray (ny streng [0]); }

Noter det toArray (ny T [0]) er den foretrukne måde at bruge metoden frem for toArray (ny T [størrelse]). Som Aleksey Shipilëv beviser i sit blogindlæg, virker det hurtigere, mere sikkert og renere.

3. Kortlæg værdier, der skal vises

Lad os derefter konvertere værdierne på et kort til en liste - ved hjælp af almindelig Java:

@Test offentlig ugyldighed givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect () {Map sourceMap = createMap (); Liste targetList = ny ArrayList (sourceMap.values ​​()); }

Og ved hjælp af Guava:

@Test offentlig ugyldighed givenUsingGuava_whenMapValuesConvertedToList_thenCorrect () {Map sourceMap = createMap (); Liste targetList = Lists.newArrayList (sourceMap.values ​​()); }

4. Kortværdier, der skal indstilles

Lad os endelig konvertere værdierne på kortet til et sæt ved hjælp af almindelig java:

@Test offentlig ugyldighed givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect () {Map sourceMap = createMap (); Indstil targetSet = nyt HashSet (sourceMap.values ​​()); }

5. Konklusion

Som du kan se, kan alle konverteringer udføres med en enkelt linje ved kun at bruge Java-standardsamlingsbiblioteket.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på GitHub-projektet - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.


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