[java] design... hashmap à 2 clés !?

design... hashmap à 2 clés !? [java] - Java - Programmation

Marsh Posté le 21-08-2002 à 15:35:57    

En admettant que j'en ai besoin, comment me conseilleriez-vous de remplir et consulter une hashmap avec 2 clés ?
 
Pour l'instant je concatene clé1+"~"+clé2 , en etant assuré que "~" ne sera jamais dans clé1 ni clé2, mais ça suxx des ours.
(mes clés et leurs valeurs ne sont que des strings)
 
Que faire? Lire l'article de benou sur les hashcode? :D

Reply

Marsh Posté le 21-08-2002 à 15:35:57   

Reply

Marsh Posté le 21-08-2002 à 15:41:24    

bah...sinon, tu fais un objet avec 2 hashtable..Dans une, tu met une correspondance clé1-> valeur, et dans l'autre clé2->clé1...
Non???
 
Ou alors...clé1->valeur, et clé2->valeur : tu utilises une référence vers le meêm objet..ca doit pas coûter bien cher, si??


Message édité par gfive le 21-08-2002 à 15:42:55
Reply

Marsh Posté le 21-08-2002 à 15:43:10    

que veux tu dire par hashmap avec 2 clefs ?
une ahshMap sur laquelle tu pourras apeler la méthode get en utilisant soit une clef siot uen autre ou bien simplement une hashmap ou la clef est composée de 2 objets ?
 
si c'est la deuxeme solution, il faut que tu créé un objet qui contient les 2 autres objets en attribut et sur lequel tu redéfinies les méthodes equals et hashCode
 
pour equals tu testes l'égalité des 2 attributs (attention aux null) et pour hashCode tu additionne le hashCode des 2 (attention aux null aussi)

Reply

Marsh Posté le 21-08-2002 à 15:43:44    

la solution de gfive est bonne si c'était le premier cas qui était le bon

Reply

Marsh Posté le 21-08-2002 à 15:45:48    

benou : en effet ct la 2e soluce.
je vais sans doute faire ça.
je cache le hashcode comme dans String, hein, c utile nan?
 
j'avoue que mon appelation "hashmap à 2 clés" etait pas claire: il s'agit donc d'une hashmap pour laquelle je veux passer 2 clés à la methode get. Chaque combinaison de 2 clés correspond à une valeur unique. c mieux là?:o

Reply

Marsh Posté le 21-08-2002 à 15:48:46    

--greg-- a écrit a écrit :

 
je cache le hashcode comme dans String, hein, c utile nan?




ben si vraiment tu cherche les perfs oui ... sinon non.
 
De totue façon, si tes attributs cache déjà leur hashCode, ton hasCode à toi se résumera à une addition ...

Reply

Marsh Posté le 21-08-2002 à 17:33:58    

un hashmap a deux clés c'est conceptuellement la meme chose
qu'un hashmap a une clé.  
 
de meme qu'un tri sur deux criteres c'est conceptuellement la meme chose qu'un tri a un critere.
 
LeGreg

Reply

Marsh Posté le 21-08-2002 à 17:35:55    

merci legreg...  :ange:  

Reply

Marsh Posté le 21-08-2002 à 17:36:30    

de rien :D
 
LeGreg

Reply

Marsh Posté le 21-08-2002 à 17:38:04    

parce que, spa pour dire, mais ça n'a rien à voir ce que tu m'as dit :D
ça a beau etre conceptuellement "la meme chose", ça n'en change pas moins le fait qu'il fallait l'implementer d'une maniere ou d'une autre.
non mais.

Reply

Marsh Posté le 21-08-2002 à 17:38:04   

Reply

Marsh Posté le 21-08-2002 à 17:48:28    

Nan je disais ca parce qu'il y a eu un jour une question d'un programmeur qui demandait: "bonjour, je connais qsort (en C) qui sert a faire un tri selon un critere, mais je voudrais faire un tri sur trois criteres A,B,C. Comment faire?"
En fait, le principe du tri a trois criteres c'est juste de changer la fonction de comparaison pour tenir compte des trois A, B et C dans l'ordre. Bref, ca demande pas de reprogrammer qsort ou je ne sais quoi.
 
Pour les hashmaps c'est la meme chose. Si ta clé est transformée en hashcode, alors deux clés transformé dans un hashcode similaire ca fera la meme chose. Donc pas la peine de reprogrammer la map.
 
A+
LeGreg

Reply

Marsh Posté le 21-08-2002 à 17:50:25    

tout à fait :)
mais je ne veux pas reimplementer hashmap
le seul truc auquel j'avais pas pensé (enfin ... je n'ai pas pensé du tout en fait [:dawa]), c'était de faire un objet de mes 2 clés au lieu de les concatener.

Reply

Marsh Posté le 21-08-2002 à 17:51:48    

benou a écrit a écrit :

 
ben si vraiment tu cherche les perfs oui ... sinon non.
 
De totue façon, si tes attributs cache déjà leur hashCode, ton hasCode à toi se résumera à une addition ...



oh j'avais pas vu ce post, benou.
mais si on y va comme ça, on peut ptetre aussi dire qu'alors je peut tres bien faire ma bete concat de mes deux clés, nan?
bon ok, une concat c pas trop pareil qu'une addition d'entiers... :o
et puis c pas bo.
bon
je ferai mon tit objet ce soir si je lui trouve un nom :D

Reply

Marsh Posté le 21-08-2002 à 18:04:07    

perso, j'ai encore jamais fait de cahching de hashCode ...  
 
mais bon, c'est pas grand chose à faire, alors si ca te dit, lache toi ! ;)


Message édité par benou le 21-08-2002 à 18:04:19
Reply

Marsh Posté le 21-08-2002 à 18:04:54    

--greg-- a écrit a écrit :

 
je ferai mon tit objet ce soir si je lui trouve un nom :D




DoubleKey !!! :)

Reply

Marsh Posté le 21-08-2002 à 18:12:19    

benou a écrit a écrit :

 
DoubleKey !!! :)



:D

Reply

Marsh Posté le 21-08-2002 à 18:21:50    

HeavyHashMap (c'est lourd deux clés)
 
benou > c'est quoi ce mot : cahching ?


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 18:33:28    

Cherrytree a écrit a écrit :

 
benou > c'est quoi ce mot : cahching ?




c'est caching écrit par un gars atteint du cancer des doigts. ;)

Reply

Marsh Posté le 21-08-2002 à 18:34:00    

Cherrytree a écrit a écrit :

HeavyHashMap (c'est lourd deux clés)




PorteClefs tant que t'y es ! ;)


Message édité par benou le 21-08-2002 à 18:34:06
Reply

Marsh Posté le 21-08-2002 à 18:34:55    


Ben tu crée 2 Hashmap!
 
...Avec une petite classe pour gerer la synchro des deux!


---------------
XBox? http://www.gamertagdatabase.com
Reply

Marsh Posté le 21-08-2002 à 18:41:07    

therier a écrit a écrit :

 
Ben tu crée 2 Hashmap!
 
...Avec une petite classe pour gerer la synchro des deux!
 



heho, le rang du fond, on suit un peu là. je vous ai vous dormir.

Reply

Marsh Posté le 21-08-2002 à 18:41:18    

benou a écrit a écrit :

 
PorteClefs tant que t'y es ! ;)



excellent [:xp1700]

Reply

Marsh Posté le 21-08-2002 à 18:42:42    

--greg-- a écrit a écrit :

heho, le rang du fond, on suit un peu là. je vous ai vous dormir.




 
Mais...heu!!!! J'ai pas tout lu... [:therier] ça c'est vu?!? :D  
 


---------------
XBox? http://www.gamertagdatabase.com
Reply

Marsh Posté le 21-08-2002 à 18:43:20    

therier a écrit a écrit :

 
 
Mais...heu!!!! J'ai pas tout lu... [:therier] ça c'est vu?!? :D  
 
 



non non pas du tout :o

Reply

Marsh Posté le 21-08-2002 à 20:56:56    

benou a écrit a écrit :

 
PorteClefs tant que t'y es ! ;)



Je préfère OuvreBoite, personnellement.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 20:57:53    

Ou ClefDeDeuxMap


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 22:37:05    

Map2000
 
edit : celui qui trouve le jeu de mot a la con, remporte toute mon estime  ;)


Message édité par HappyHarry le 21-08-2002 à 22:37:57
Reply

Marsh Posté le 21-08-2002 à 22:39:14    

HappyHarry a écrit a écrit :

Map2000
 
edit : celui qui trouve le jeu de mot a la con, remporte toute mon estime  ;)  



on se calme les enfants:)
j'ai nommé mon objet clé en fonction du bidule ds lequel je le met wala

Reply

Marsh Posté le 21-08-2002 à 23:19:03    

--greg-- a écrit a écrit :

on se calme les enfants:)
j'ai nommé mon objet clé en fonction du bidule ds lequel je le met wala
 



CléEnFonctionDuBiduleDansLequelJeLeMetWala ? :??: [:zebra33]
 
Pourquoi pas, après tout. :sarcastic:


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 23:21:16    

HappyHarry a écrit a écrit :

Map2000
 
edit : celui qui trouve le jeu de mot a la con, remporte toute mon estime  ;)  



Désolé, je vois pas.
--greg-- > Que dis tu de DoubleInCaseIForgotTheKeysForMyMap ?


---------------
Le site de ma maman
Reply

Marsh Posté le 22-08-2002 à 00:11:56    

ou bien KeyPOWA ! ;)

Reply

Marsh Posté le 22-08-2002 à 00:14:35    

ça suffit oui :o

Reply

Marsh Posté le 22-08-2002 à 00:15:53    

ou bien
 
RahPutainJaiPaumeMesClesSiSeulementJavaisFaitUnDoubleInCaseIForgotTheKeysForMyMap

Reply

Marsh Posté le 22-08-2002 à 05:41:34    

HappyHarry a écrit a écrit :

ou bien
 
RahPutainJaiPaumeMesClesSiSeulementJavaisFaitUnDoubleInCaseIForgotTheKeysForMyMap  



;) :lol:


---------------
Le site de ma maman
Reply

Marsh Posté le 22-08-2002 à 09:11:26    

[:darklord]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed