Le code typique pour itérer sur une carte est le suivant :
Map<String,Thing> map = ...;
for (Map.Entry<String,Thing> entry : map.entrySet()) {
String key = entry.getKey();
Thing thing = entry.getValue();
...
}
HashMap
est l'implémentation canonique de la carte et ne fait pas de garanties (ou si elle ne devrait pas changer l'ordre si aucune opération de mutation n'est effectuée sur elle). SortedMap
retournera des entrées basées sur l'ordre naturel des clés, ou un Comparator
si elle est fournie. LinkedHashMap
retournera les entrées dans l'ordre d'insertion ou dans l'ordre d'accès, selon la façon dont il a été construit. EnumMap
retourne les entrées dans l'ordre naturel des clés.
(Mise à jour : je pense que ce n'est plus vrai. ) Note, IdentityHashMap
entrySet
a actuellement une implémentation particulière qui renvoie le même itérateur de type Map.Entry
pour chaque élément de la entrySet
! Cependant, à chaque fois qu'un nouvel itérateur avance le Map.Entry
est mis à jour.
42 votes
En Java 8, à l'aide d'une expression lambda : stackoverflow.com/a/25616206/1503859
5 votes
Java 8 : stackoverflow.com/questions/46898/