Java - une Itération sur une Carte qui contient une Liste
Première fois ici, donc j'espère que cela a du sens!
J'ai une Carte qui contient une Chaîne de caractères comme c'est la Clé, et une Liste de Chaînes que c'est de la Valeur. J'ai besoin d'itérer sur tous les vlaues contenues à l'intérieur de chaque Liste à l'intérieur de la Carte.
Alors, je tiens d'abord à la remise des Clés, qui fonctionne:
Set<String> keys = theMap.keySet();
Cela me renvoie un Ensemble contenant tous mes Clés. Beaucoup 🙂
C'est là que j'ai collé plus de l'info sur le web semble supposer que les valeurs que je veux retourné à partir de la Clé serait une simple Chaîne ou un Entier, et pas un autre, ou dans ce cas une Liste. J'ai essayé theMap.values()
mais cela ne fonctionne pas, et j'ai essayé un forloop /pour:eachloop, et aucun de ceux qui a fait le tour.
Grâce y'all!
OriginalL'auteur cmdrbob | 2012-04-09
Vous devez vous connecter pour publier un commentaire.
C'est vraiment la façon "normale" de le faire. Ou, si vous avez besoin de la clé...
Cela dit, si vous avez la possibilité, vous pourriez être intéressé par La goyave est
ListMultimap
, qui est un peu comme unMap<K, List<V>>
, mais il a beaucoup plus de fonctionnalités, y compris uneCollection<V> values()
qui agit exactement comme ce que vous demandez, "l'aplatissement" de toutes les valeurs dans le multimap en une seule collection. (Divulgation: je contribue à la Goyave.)OriginalL'auteur Louis Wasserman
Je vous recommande de parcourir
Map.entrySet()
car il est plus rapide (vous avez à la fois, la clé et la valeur trouvée en une seule étape).Et la sortie est, comme prévu:
OriginalL'auteur Jiri Patera
Vous avez besoin d'un
Map<String, List<String>>
La gauche
String
est la clé, la droiteList<String>
est la valeur, qui dans ce cas est unList
deString
sOriginalL'auteur Edwin Buck