Bonjour,
Pourriez vous me confirmer que par définition, une table de hashage génère de la collision ?
Je reprends un code qui génère une collision avec String.hashCode()
Merci
Z.
Bonjour,
Pourriez vous me confirmer que par définition, une table de hashage génère de la collision ?
Je reprends un code qui génère une collision avec String.hashCode()
Merci
Z.
Oui les tables de hachages génèrent des collisions. Il y a plusieurs moyen de les gérer.
Cdt.
Je pense que je vais bypasser la table de hash. Moins rapide et plus gorumand en mémoire, mais moins de code a re-écrire.
merci encore
Z.
On rappellera que HashSet et HashMap sont parfaitement au courant de l'existence des collisions et les gèrent très bien, sans qu'on ait besoin de faire quoi que ce soit.
Les tables de hachage c'est typiquement le genre de trucs qu'on apprend à l'école pour comprendre que c'est pas de la magie, puis qu'on a plus jamais besoin de toucher parce que l'ordi fait ça à notre place.
thelvin : Le programme que je relis utilise java.lang.String.hashCode(). Tu essais de me dire que Java a une fonction qui entre en jeu lors des collisions ? En tout cas, elle ne fonctionne pas dans mon programme, a moins que le concepteur ai oublié la partie sensée gérer ces rares cas.
Merci
Z.
Il s'en sert comment de String.hashCode() ?
Pourquoi est-ce qu'il l'appelle lui-même au lieu de juste utiliser un HashSet ou un HashMap qui n'ont aucun problème avec les collisions ?
Je sais bien que dans des cas très spécialisés ça peut arriver d'en avoir besoin. Mais il faut toujours en douter a priori.
Partager