803 votes

Comment faire pour convertir une carte à la liste en Java ?

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 ?

1515voto

cletus Points 276888
<pre><code></code><p>en supposant que :</p><pre><code></code></pre></pre>

144voto

coobird Points 70356

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

29voto

java dude Points 81

vous offre une collection de objets contenant la clé et valeur. vous pouvez ensuite transformer cela en n’importe quel objet de collection, vous aimez, tels que `` ;

26voto

Diego Amicabile Points 113

une liste de quoi ?

En supposant que est votre instance de

  • retourne un contenant toutes les valeurs de la carte.
  • retourne un contenant toutes les clés de la carte.

15voto

maneesh Points 452

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());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X