No ... non ci siamo.Originariamente inviato da Donovant
ma siccome k1 String1 e k2 String hanno 2 hashcode diversi
Non riesco a capire il fatto che tu dici che chiavi diverse con stessa STRINGA abbiano hashcode uguali
In una Map basata su una "tabella hash" (precisazione importante ... non l'ho fatta prima) è fondamentale che gli oggetti delle chiavi rispettino il contratto tra equals() e hashCode(). Fin qui probabilmente l'hai capito.
Se questo contratto viene rispettato, non è possibile che in una Map ci siano 2 chiavi uguali. È possibile che due chiavi diverse abbiano lo stesso hashcode. Questo sì. Ma non è un problema. Perché comunque la Map per cercare una chiave prima usa hashCode() per individuare il "bucket" e poi scansiona la lista linkata sotto il bucket usando equals() su tutte le chiavi nella lista finché non trova la chiave uguale a quella cercata.
Se due chiavi diverse hanno lo stesso hashcode ... beh, andranno a finire sotto il medesimo bucket. Ma tanto sono diverse, motivo per cui appunto possono coesistere.
Ti è più chiaro adesso?