Convertir une carte en tableau, en liste ou en ensemble en Java
1. Vue d'ensemble
Ce court article montrera commentconvert the values of a Map to an Array, a List or a Set en utilisant Java brut ainsi qu'un exemple rapide basé surGuava.
Cet article fait partie dethe “Java – Back to Basic” series ici par exemple.
Lectures complémentaires:
Itérer sur une carte en Java
Apprenez différentes manières de parcourir les entrées d'une carte en Java.
La différence entre map () et flatMap ()
Découvrez les différences entre map () et flatMap () en analysant quelques exemples de flux et d'options.
Comment stocker des clés en double dans une carte en Java?
Un guide rapide et pratique pour gérer les clés en double en utilisant plusieurs cartes en Java.
2. Mapper les valeurs au tableau
Commençons par convertir les valeurs de la carte en un tableau,using plain java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
Map sourceMap = createMap();
Collection values = sourceMap.values();
String[] targetArray = values.toArray(new String[values.size()]);
}
3. Mapper les valeurs à la liste
Ensuite, convertissons les valeurs d'une carte en liste - en utilisant Java pur:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map sourceMap = createMap();
List targetList = new ArrayList<>(sourceMap.values());
}
Et en utilisant de la goyave:
@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map sourceMap = createMap();
List targetList = Lists.newArrayList(sourceMap.values());
}
4. Mapper les valeurs à définir
Enfin, convertissons les valeurs de la carte en un ensemble, en utilisant java simple:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map sourceMap = createMap();
Set targetSet = new HashSet<>(sourceMap.values());
}
5. Conclusion
Comme vous pouvez le constater, toutes les conversions peuvent être effectuées avec une seule ligne, en utilisant uniquement la bibliothèque de collections standard Java.
L'implémentation de tous ces exemples et extraits de codecan be found over on GitHub project - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.