Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1151 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] hashmap - comment utiliser containsKey ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] hashmap - comment utiliser containsKey ?

n°642917
belzme
Hertz ou ne pas hertz...
Posté le 14-02-2004 à 21:17:55  profilanswer
 

Petite question avec la collection Hashmap.
 
Donc ma hashmap contient une clé qui est un objet Auteur et la partie valeur est une collection d'objet Livre.
 
Je dois ajouter un livre a un auteur seulement si celui-ci est deja dans la hashmap.  
 
Voici ma fonction addLivre :
 

Code :
  1. public void addLivre(Livre l) {
  2.      Auteur temp = new Auteur(l.getCodeAuteur());
  3. if (bd.containsKey(temp)) {
  4.       ((ArrayList) bd.get(temp)).add(l);
  5. }
  6. }


 
Cependant il ne trouve jamais l'auteur même si le Auteur.equals devrais retourner true en théorie. :
 

Code :
  1. public boolean equals(Object o) {
  2.  if (o instanceof Auteur) {
  3.   Auteur a = (Auteur) o;
  4.   return code.equals(a.code);
  5.  }
  6.  return false;
  7. }


 
Auriez-vous une idée pourquoi?  
 
Merci !!!


Message édité par belzme le 15-02-2004 à 18:00:42
mood
Publicité
Posté le 14-02-2004 à 21:17:55  profilanswer
 

n°642924
benou
Posté le 14-02-2004 à 21:33:24  profilanswer
 

tu dois surcharger la méthode hashcode

n°642936
belzme
Hertz ou ne pas hertz...
Posté le 14-02-2004 à 22:25:43  profilanswer
 

j'ai redéfini hashCode dans auteur de la façon suivante :
 

Code :
  1. public int hashCode() {
  2.  return code.hashCode();
  3. }


 
Pourtant ca ne fonctionne toujours pas ;(

n°642937
benou
Posté le 14-02-2004 à 22:33:38  profilanswer
 

BelzME a écrit :

Pourtant ca ne fonctionne toujours pas ;(


ben ca devrait.
 
teste mieux


Message édité par benou le 14-02-2004 à 22:33:47
n°642942
belzme
Hertz ou ne pas hertz...
Posté le 14-02-2004 à 22:56:26  profilanswer
 

En effet tu a raison,
 
Mon problème est lié au fait que mon code est composé de la façon suivante : A085
 
cependant dans la classe auteur je dois absolument accepté un constructeur prenant le code en format int (donc seulement le 085) et ensuite j'initialise code avec this.code = "A"+code;
 
Cependant lorsque je fait :
 
Auteur temp = new Auteur(Integer.parseInt(l.getCodeAuteur().substring(1)));
 
Le code devient A85 au lieu de A085.
 
Comment je peux conserver le 0 proprement ?

n°642969
benou
Posté le 14-02-2004 à 23:40:52  profilanswer
 

avec java.text.DecimalFormat :  

Code :
  1. int i = 38;
  2.  NumberFormat formater = new DecimalFormat("000" );
  3.  System.out.println("i = " + formater.format(i));


Citation :

i = 038

n°643347
belzme
Hertz ou ne pas hertz...
Posté le 15-02-2004 à 17:53:04  profilanswer
 

Merci bcp Benou :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] hashmap - comment utiliser containsKey ?

 

Sujets relatifs
[vba] extraire une date - [resolu]Gestion des sessions: Changer une valeur.[RESOLU]
[resolu] redirection automatique apres un laps de tempsutiliser SSO avec Tomcat
[ECLIPSE] Passer en debug dans un programme [RESOLU][JAVA] Utiliser KeyListener pour une exécution en mode console
[Résolu] ASP-Cookiedeclaration de thread en global et threadstart [résolu]
[CSS] Imbrication de structures [Résolu][ORACLE FORMS] validité d'une variable globale ? [Résolu]
Plus de sujets relatifs à : [Résolu] hashmap - comment utiliser containsKey ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR