Le Jeudi  3 Octobre 2002 15:10, CATHALA Laurent a �crit :

> Bonjour � tous,
>
> Je stocke un objet en tant que cl� dans une hashMap, cet objet repr�sente
> un objet recup�r� d'une basse de donn�e.
> Si je recupere a nouveau le m�me objet de la base, l'objet java repr�sent�
> est different du pr�cedent ...
> Donc je ne peux pas utiliser les methodes containsKey(),etc de ma hashMap.
> Je surcharge donc la methode equals de mon objet, mais il me reste le
> probleme du hashCode :o(
>

Je ne comprends pas tr�s bien ce que tu veux faire ; il est tout � fait 
d�conseill� d'utiliser des objets variables en tant que clef ; il vaux mieux 
utiliser des objets "immuables" - imutables en anglais - comme des String, 
des URL, etc.

Si tu utilises des objets variables, cela marche tout de m�me 9 fois sur 10, 
car le hashcode renvoit par d�faut une sorte de position en m�moire de 
l'objet, qui ne varie pas si tu fais simplement varier les param�tres 
internes.

Par contre si tu changes compl�tement d'objet, il est �vident que le hashcode 
sera modifi� 9 fois sur 10. Mais pourquoi veux-tu changer d'objet c'est pour 
obtenir le m�me en valeur ?

Je sais pas si tu comprends pourquoi je ne te comprends pas ...

> Je me demande si il est judicieux de surcharger la methode hashCode ? Si
> oui comment, sachant que j'ai de nombreux objets differents dans mon modele
> et que je ne veux pas perdre les benefices de recherche de la hashMap !
>

Il peut �tre judicieux de surcharger la m�thode hashcode (voir les 
explications de guillaume), mais dans ton cas je ne comprends pas ce que tu 
souhaite faire.


-- 
SARL diaam informatique - 04 50 77 12 60
Ingenierie, d�veloppements de syst�mes d'information
http://www.diaam-informatique.com

Répondre à