Si je passe la même clé plusieurs fois à HashMap
's put
qu'advient-il de la valeur originale ? Et que se passe-t-il si même la valeur se répète ? Je n'ai pas trouvé de documentation à ce sujet.
Cas 1 : Valeurs écrasées pour une clé
Map mymap = new HashMap();
mymap.put("1","one");
mymap.put("1","not one");
mymap.put("1","surely not one");
System.out.println(mymap.get("1"));
On obtient surely not one
.
Cas 2 : Valeur dupliquée
Map mymap = new HashMap();
mymap.put("1","one");
mymap.put("1","not one");
mymap.put("1","surely not one");
// The following line was added:
mymap.put("1","one");
System.out.println(mymap.get("1"));
On obtient one
.
Mais qu'advient-il des autres valeurs ? J'enseignais les bases à un étudiant et on m'a posé cette question. Est-ce que le Map
comme un seau où la dernière valeur est référencée (mais en mémoire) ?
7 votes
D'ailleurs, c'est une excellente occasion de montrer le multi-hashmap qui fait partie des classes de collections Jakarta ( commons.apache.org/collections ). Il vous permettra d'avoir un nombre quelconque de valeurs associées à la même clé, pour les fois où vous en aurez besoin.
0 votes
Duplicata possible de HashMap avec plusieurs valeurs sous la même clé