|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2008
Messaggi: 4
|
[java] ridefinizione hashcode su mappe
Salve a tutti!
Vi pongo un lacerante dubbio su java, sto mappando su una hashmap 50 clienti du un supermerkato che possiedono la tessera soci... il valore tessera soci (univoca) la uso come chiave della mappa, il mio questito è: quando ridefinisco hashcode, devo farlo solo sul campo chiave o anke su tutti gli altri campi?? ovvero: cosi: public int hashCode() { int val=1; val=val + 31*tesseraCliente(); return val; } oppure public int hashCode() { int val=1; val=val + 31*tesseraCliente(); val=val + 31*nomeCliente(); val=val + 31*cognomeCliente(); return val; } |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Da quello che ho capito io (da quello che ho letto, sarebbe più esatto) la risposta è: no, non è *necessario*.
No, perchè lo scopo della funzione hashCode() non ha nulla a che fare che quali/quanti membri un'istanza di una classe abbia al suo interno. Alcune letture sull'argomento (HashMap/HashSet - hashCode method): > 2005 :: Some insight into HashMap and hashCode > 2007 :: hashCode() pitfalls with HashSet and HashMap > The Gemini Twins: equals and hashCode > 2003 :: Java theory and practice: Hashing it out > 2002 :: HashMap requires a better hashCode() - JDK 1.4 Part II
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:41.



















