Existe-t-il un moyen d'effectuer une itération dans un tableau de hachage Java et d'imprimer toutes les valeurs pour chaque clé faisant partie du tableau de hachage?
Avec pour chaque boucle, utilisez Map.keySet()
pour les clés itératives, Map.values()
pour les valeurs itératives et Map.entrySet()
pour les paires clé/valeur itératives.
Notez que toutes ces vues sont des vues directes de la carte utilisée pour les acquérir. Toute modification apportée à l’une des trois cartes ou à la carte elle-même sera répercutée sur toutes les autres.
Oui, vous faites cela en obtenant la entrySet()
de la carte. Par exemple:
Map<String, Object> map = new HashMap<String, Object>();
// ...
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());
}
(Bien sûr, remplacez String
et Object
par les types que votre Map
possède - le code ci-dessus n’est qu’un exemple).
for (Map.Entry<T,U> e : map.entrySet())
{
T key = e.getKey();
U value = e.getValue();
.
.
.
}
De plus, si vous utilisez une carte LinkedHashMap comme implémentation, vous pourrez itérer dans l'ordre dans lequel les paires clé/valeur ont été insérées. Si ce n'est pas important, utilisez un HashMap.
public class abcd {
public static void main(String[] args)
{
Map<Integer, String> testMap = new HashMap<Integer, String>();
testMap.put(10, "a");
testMap.put(20, "b");
testMap.put(30, "c");
testMap.put(40, "d");
for (Entry<Integer, String> entry : testMap.entrySet()) {
Integer key=entry.getKey();
String value=entry.getValue();
}
}
}
hashmap.keySet().iterator()
utilisez une boucle for
pour l'itérer.
puis utilisez hashmap.get(item)
pour obtenir des valeurs individuelles,
Sinon, utilisez simplement entrySet()
pour obtenir un itérateur de valeurs.
Java 8 ajouté Map.forEach
que vous pouvez utiliser comme ceci:
map.forEach((k, v) -> System.out.println("key=" + k + " value=" + v));
Il y a aussi replaceAll
si vous souhaitez mettre à jour les valeurs:
map.replaceAll((k, v) -> {
int newValue = v + 1;
System.out.println("key=" + k + " value=" + v + " new value=" + newValue);
return newValue;
});