Aide sur les Hashmaps
Résolu
etudiantepg
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
etudiantepg Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
etudiantepg Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
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?