Converteer een kaart naar een array, lijst of set in Java

1. Overzicht

Dit korte artikel laat zien hoe converteer de waarden van a Kaart aan een Matrix, een Lijst of een Set met behulp van gewoon Java en een snel op Guava gebaseerd voorbeeld.

Dit artikel maakt deel uit van de serie "Java - Back to Basic" hier op Baeldung.

2. Wijs waarden toe aan Array

Laten we eerst eens kijken naar het omzetten van de waarden van de kaart in een array, met behulp van gewone java:

@Test openbare leegte gegevenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect () {Map sourceMap = createMap (); Verzamelingswaarden = sourceMap.values ​​(); String [] targetArray = waarden.toArray (nieuwe String [0]); }

Let daar op toArray (nieuwe T [0]) is de beste manier om de methode te gebruiken boven de toArray (nieuwe T [grootte]). Zoals Aleksey Shipilëv in zijn blogpost bewijst, lijkt het sneller, veiliger en schoner.

3. Wijs waarden toe aan lijst

Laten we vervolgens de waarden van een kaart naar een lijst converteren - met gewoon Java:

@Test openbare ongeldige gegevenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect () {Map sourceMap = createMap (); List targetList = nieuwe ArrayList (sourceMap.values ​​()); }

En met behulp van Guava:

@Test openbare leegte gegevenUsingGuava_whenMapValuesConvertedToList_thenCorrect () {Map sourceMap = createMap (); Lijst targetList = Lists.newArrayList (sourceMap.values ​​()); }

4. Wijs in te stellen waarden toe

Laten we tot slot de waarden van de kaart naar een set converteren, met behulp van gewone java:

@Test openbare leegte gegevenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect () {Map sourceMap = createMap (); Set targetSet = nieuwe HashSet (sourceMap.values ​​()); }

5. Conclusie

Zoals u kunt zien, kunnen alle conversies worden uitgevoerd met een enkele regel, waarbij alleen de Java-standaardcollectiebibliotheek wordt gebruikt.

De implementatie van al deze voorbeelden en codefragmenten is te vinden op het GitHub-project - dit is een op Maven gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.


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