Ce qui est le meilleur moyen pour convertir un à un
? Juste une itération sur toutes les valeurs et les insérer dans une liste ou am j’ai vue sur quelque chose ?
Réponses
Trop de publicités?Le problème ici est qu' Map
a deux valeurs (une clé et une valeur), tandis qu'un List
a qu'une seule valeur (d'un élément).
Donc, le mieux à faire est d'obtenir soit une List
de la remise des clés ou des valeurs. (À moins d'en faire un wrapper pour se tenir à la paire clé/valeur).
Disons que nous avons un Map
:
Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");
Les touches comme un List
peut être obtenu par la création d'un nouveau ArrayList
d'un Set
retournée par l' Map.keySet
méthode:
List<String> list = new ArrayList<String>(m.keySet());
Alors que les valeurs en List
peut être obtenu à la création d'un nouveau ArrayList
d'un Collection
retournée par l' Map.values
méthode:
List<String> list = new ArrayList<String>(m.values());
Le résultat de l' List
de clés:
Apple Un autre Bonjour
Le résultat de l' List
de valeurs:
3.14 Élément Monde
Je suppose que vous voulez convertir les valeurs contenues dans l' Map
d'un list
? Le plus simple est d'appeler l' values()
méthode de Map
interface. Ce sera le retour de la Collection
de la valeur des objets contenus dans l' Map
.
Notez que ce Collection
"est soutenu par l' Map
objet et de toute modification de l' Map
objet de refléter ici. Donc, si vous voulez une copie distincte qui n'est pas lié à votre Map
objet, il suffit de créer un nouveau List
objet comme un ArrayList
passant la valeur Collection
comme ci-dessous.
ArrayList<String> list = new ArrayList<String>(map.values());