Aide sur les Hashmaps

Résolu/Fermé
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 20 nov. 2013 à 20:04
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 20 nov. 2013 à 21:04
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?

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 20/11/2013 à 20:54
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.

for (Entry<String, String[]> contact : map.entrySet())
    System.out.println("(" + contact.getKey() + ", " + Arrays.toString(contact.getValue()) + ")");
}
La confiance n'exclut pas le contrôle
0
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
20 nov. 2013 à 21:01
Merciiii beaucoup je n'y avais pas penser! mais maintenant la console m'affiche

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?
0
etudiantepg Messages postés 12 Date d'inscription mercredi 20 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
20 nov. 2013 à 21:04
aah c'est bon mercii j'ai trouvé comment faire :')
0