Maison > Questions et réponses > le corps du texte
static int indexFor(int h, int length) {
// assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2";
return h & (length-1);
}
HashMap hachera la valeur de hachage de la clé et la taille du tableau Entry[] pour obtenir la position en indice du tableau Entry. Je viens de découvrir lors du débogage qu'il existe deux clés différentes (avec des valeurs de hachage différentes), mais la index obtenu via indexFor Les indices sont les mêmes, ce qui signifie que deux valeurs avec des valeurs de clé différentes et des valeurs de hachage différentes sont liées ensemble pour former une liste chaînée. Je me souviens avoir lu des articles écrits par d'autres auparavant, et ils ont tous lu. a dit que les valeurs de hachage sont les mêmes, mais que les valeurs clés sont différentes. Les valeurs formeront une liste chaînée, mais dans le débogage réel, j'ai trouvé des résultats différents. Quelqu'un peut-il jeter un œil au problème
.PHP中文网2017-05-17 10:01:13
Object (key) -> hashCode -> index
Différents Object
peuvent avoir le même hashCode
(qui à son tour doit être différent, à moins que hashCode
ou equals
ne soient définis incorrectement );
Différents hashCode
peuvent avoir le même index
(et à l'inverse doivent être différents), puis une liste chaînée sera formée. Object
可能有相同的hashCode
(反过来一定不同,除非hashCode
或equals
定义错了);
不同的hashCode
可能有相同的index
(反过来一定不同),这时才会形成链表。
这里的hashCode
可能跟你看到的某些文章的hash
hashCode
ici peut ne pas avoir la même signification que le hash
dans certains articles que vous avez vus. 🎜