Quelle fonction de hachage Java utiliser par défaut et peut-on remplacer le comportement par défaut?

Je suis passer par la Introduction d'Algorithmes par Cormen et al vidéo et il traite de plusieurs fonctions de hachage . Je veux savoir quelle fonction de hachage Java utiliser par défaut?La fonction de hachage différents pour différents types d'objets qui sont utilisés comme clés? Est-il une api dans les Collections cadre qui nous permettent d'écrire notre propre algorithme de hachage ?

D'autres ont donné de très bonnes réponses à cette question. Je vais juste ajouter que, grâce à la fonction de hachage d'un attribut de l'objet de type plutôt que de la collection, il vous permet de ré-utiliser les mêmes types dans de nombreuses collections, et pour les collections pour gérer tous types arbitraires sans avoir à connaître la façon de hachage de chaque type qu'ils pourraient rencontrer.
Aussi: toujours remplacer la valeur par défaut hashcode lorsque vous effectuez un nouveau type d'objet, si c'est possible, il pourrait être utilisé dans une collection. La valeur par défaut hashcode est basée sur l'identité de l'objet, de sorte que les différentes instances de donner différents hashcodes même si tous les champs sont identiques.
Double Possible de Pourquoi Java est hashCode() en Chaîne de caractères utilisez 31 comme un multiplicateur? je reconnais que ce n'est pas à proprement parler un duplicata; cependant, je crois que un bon réponse à cette question serait d'inclure la réponse à la question précédente.

OriginalL'auteur Geek | 2012-08-16