Java: compte le nombre total d'éléments dans une HashMap & lt; String, ArrayList & lt; String & gt; & gt;
J'ai cette HashMap<String, ArrayList<Item>>
, il est un moyen de compter le nombre total d'objets dans toutes les Listes à la Carte sans passer par toutes les Listes?
Ou dois-je parcourir la Carte et le long de toutes les listes ?
source d'informationauteur user680406
Vous devez vous connecter pour publier un commentaire.
Vous pourriez vouloir voir Google Goyave et l'utilisation Multimap au lieu de cela. Le Multimap.méthode size() va donner la réponse que vous voulez.
Utiliser la méthode size() définie pour HashMap.
De Java 8 vous accomplir cela avec un one-liner:
Vous aurez besoin pour effectuer une itération sur les
List<Item>
valeurs dans votreMap
et de compter le total. LeMap
n'ont pas la moindre connaissance de ce que les valeurs que vous mettez en elle, donc il ne peut pas fournir une installation pour obtenir un total. Le code que vous avez besoin est assez simple:Depuis
Map
lui-même n'a pas de connaissance a priori sur les valeurs stockées dans celui-ci, sauf qu'ils sontObject
s (donc ne peut pas s'attendre à effectuer des opérations sur eux, d'autres que l'appel d'toString()
equals()
et/ouhashCode()
), il n'y a pas d'autre moyen que de l'itération par le biais de ses éléments et le calcul de la somme manuellement.Multimap sonne comme le bon choix, cependant, vous pourriez faire
BTW: Vous pouvez compter pour revenir d'un long 😉
Si quelqu'un cherche encore des réponses
Voici le code posté
Oui, vous avez besoin d'une boucle for: