Aide sur les Hashmaps
Résolu
etudiantepg
Messages postés
15
Statut
Membre
-
etudiantepg Messages postés 15 Statut Membre -
etudiantepg Messages postés 15 Statut Membre -
bon voilà j'ai un probléme avec l'affichage des resultats dans ma console,
j'utilise un hashmap: private HashMap<String, String[]> map; ( un tableau de String comme deuxieme valeur)
j'ai ecrit une meethode ajouter
public void ajouterContact(String nom, String[] numeroTelephone) {
map.put(nom, numeroTelephone);
}
et une methode Afficher
public void afficheListeDesContacts() {
for (Entry<String, String[]> contact : map.entrySet())
System.out.println("(" + contact.getKey() + ","
+ contact.getValue() + ")");
}
quand j'execute mon main
Annuaire annuaire = new Annuaire(); // On crée un annuaire vide
annuaire.ajouterContact("foo",new String[] {"math","logic"} ); // ajout d'un premier contact
annuaire.ajouterContact("bar", new String[] {"math","logic"}); // ajout d'un deuxième contact
System.out.println("Numéro de foo : " + annuaire.trouverNumero("foo")); // affiche :
// Numéro de foo : 1234567890
annuaire.ajouterContact("foo", new String[] {"math","logic"}); // foo a changé de numéro, on remplace l'entrée précédente par la nouvelle
System.out.println("Numéro de foo : " + annuaire.trouverNumero("foo")); // affiche :
// Numéro de foo : 1357924680
( ma classe s'apelle Annuaire) les resultats dans ma console sont:
Numéro de foo : [Ljava.lang.String;@4a5ab2
Numéro de foo : [Ljava.lang.String;@1888759
(foo,[Ljava.lang.String;@1888759)
(bar,[Ljava.lang.String;@6e1408)
:( que puis je faire?
j'utilise un hashmap: private HashMap<String, String[]> map; ( un tableau de String comme deuxieme valeur)
j'ai ecrit une meethode ajouter
public void ajouterContact(String nom, String[] numeroTelephone) {
map.put(nom, numeroTelephone);
}
et une methode Afficher
public void afficheListeDesContacts() {
for (Entry<String, String[]> contact : map.entrySet())
System.out.println("(" + contact.getKey() + ","
+ contact.getValue() + ")");
}
quand j'execute mon main
Annuaire annuaire = new Annuaire(); // On crée un annuaire vide
annuaire.ajouterContact("foo",new String[] {"math","logic"} ); // ajout d'un premier contact
annuaire.ajouterContact("bar", new String[] {"math","logic"}); // ajout d'un deuxième contact
System.out.println("Numéro de foo : " + annuaire.trouverNumero("foo")); // affiche :
// Numéro de foo : 1234567890
annuaire.ajouterContact("foo", new String[] {"math","logic"}); // foo a changé de numéro, on remplace l'entrée précédente par la nouvelle
System.out.println("Numéro de foo : " + annuaire.trouverNumero("foo")); // affiche :
// Numéro de foo : 1357924680
( ma classe s'apelle Annuaire) les resultats dans ma console sont:
Numéro de foo : [Ljava.lang.String;@4a5ab2
Numéro de foo : [Ljava.lang.String;@1888759
(foo,[Ljava.lang.String;@1888759)
(bar,[Ljava.lang.String;@6e1408)
:( que puis je faire?
1 réponse
Ton problème n'est pas lié aux HashMap, c'est parce que tu affiches les objets tableaux, pas leur contenu (la méthode toString n'est pas redéfini).
Il faut passer par la méthode Arrays.toString pour récupérer un affichage de chacune des cases.
Il faut passer par la méthode Arrays.toString pour récupérer un affichage de chacune des cases.
for (Entry<String, String[]> contact : map.entrySet()) System.out.println("(" + contact.getKey() + ", " + Arrays.toString(contact.getValue()) + ")"); }La confiance n'exclut pas le contrôle
Numéro de foo : [Ljava.lang.String;@12b6651
Numéro de foo : [Ljava.lang.String;@4a5ab2
(foo, [math, logic])
(bar, [math, logic])
Numéro de foo : null
que dois je ajouter a ma methode trouverNumero pour me corriger encore une fois?