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

  FORUM HardWare.fr
  Programmation
  Java

  probleme de Hashtable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de Hashtable

n°266933
souk
Tourist
Posté le 11-12-2002 à 10:33:34  profilanswer
 

salut, voila mon probleme :
 
J'ai defini une classe ExchangeObject, qui surdefinit la methode equals heritee de Object. Lorsque j'utilise des instances de cette classe comme cles dans une Hashtable, la methode equals n'est pas appelee (du moins celle que j'ai surdefinie (peut etre la methode equals de Object est-elle appelee, mais les signatures des fonctions sont identiques))
 
Bref, est-ce normal, est-ce qu'il y a un truc que je fais mal ? (je presume que la reponse a cette question est oui... :) )
 
merci d'avance
 
Souk

mood
Publicité
Posté le 11-12-2002 à 10:33:34  profilanswer
 

n°266935
bobuse
Posté le 11-12-2002 à 10:35:03  profilanswer
 

Et le hashcode alors ???

n°266937
bobuse
Posté le 11-12-2002 à 10:38:00  profilanswer
 

Si tu veux plus d'info sur le hashcode, tu peux trouver un article de benou qui est linké dans la JavaFAQ du forum.
 
En gros, le hashcode va être utilisé pour comparer tes clés, par défaut il est différent pour chaque objet. Donc en fait il faut que tu surcharges aussi la méthode hashcode(), et que tu trouves un entier qui représente bien ton objet, de manière unique par rapport aux données. Je crois que c'est aussi bien expliqué sur java.sun.com.
 
J'espère ne pas avoir dit trop de conneries :D

n°266942
bobuse
Posté le 11-12-2002 à 10:42:31  profilanswer
 

http://java.sun.com/docs/books/tut [...] s/map.html
je crois que c'est dans ce coin ....

n°267141
benou
Posté le 11-12-2002 à 14:53:32  profilanswer
 

coici l'adresse du post où je parlais du hashCode.
http://forum.hardware.fr/forum2.php3?post=23486&cat=10
 
attention, je viens de relire et c'est bourré de fautes de frappe et d'orthographes ! j'ai honte  :sleep:  
 

n°267622
bobuse
Posté le 11-12-2002 à 21:08:18  profilanswer
 

Bon ? et finalement ... ?

n°267631
benou
Posté le 11-12-2002 à 21:43:13  profilanswer
 

bobuse a écrit :

Bon ? et finalement ... ?


finalement quoi ?

n°267736
souk
Tourist
Posté le 12-12-2002 à 01:27:34  profilanswer
 

benou a écrit :


finalement quoi ?


 
ben merci bien :jap:

n°267837
souk
Tourist
Posté le 12-12-2002 à 11:17:49  profilanswer
 

souk a écrit :


 
ben merci bien :jap:  


m'enfin ca ne me dit pas pourquoi ma methode equals n'etait pas appelee avant...si ?

n°267852
_gtm_
Posté le 12-12-2002 à 11:22:52  profilanswer
 

Equals n'est appelée que si les hashcodes sont les mêmes.  
Si tu n'as pas redéfini hashcode, c'est possibles que pour deux objets identiques, il ne renvoie pas le même hashcode.

mood
Publicité
Posté le 12-12-2002 à 11:22:52  profilanswer
 

n°268027
benou
Posté le 12-12-2002 à 13:37:39  profilanswer
 

comme je le dis dans le lien, c'est en premier le hashCode qui est appelé sur les objets. Pour les objets qui ont le même hashCode (au modulo près), la méthode equals est utilisée pour les comparer.
 
Par défaut, la méthode hashCode renvoit l'adresse mémoire de l'objet => le hashCode est différent pour tous les objets => c'est normal que ta méthode equals ne soit jamais appelée.
 
Remarque : Elle aurait quand même pu être appelée grâce au modulo mais ca arrait été un coup de hasard.


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

  probleme de Hashtable

 

Sujets relatifs
Problème avec une procedure stockée (INSERT INTO)Petit problème de logique entre tables en Access
Problème Html !ptit probleme avec FontMetrics
[php] probleme de conversion :) un petit coup de main serait sympaProbleme de tableau
[C++ BUILDER] Problème de portabilitéBesoin d'un pro? : Problème de regexp (résolu)
Problème avec mkdir et le chmodProblème de Lien, HELP PLEASE
Plus de sujets relatifs à : probleme de Hashtable


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