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 akan mencincang nilai cincang kunci dan saiz tatasusunan Entri[] untuk mendapatkan kedudukan subskrip tatasusunan Entri saya baru mengetahui semasa penyahpepijatan bahawa terdapat dua kekunci yang berbeza (dengan nilai cincang yang berbeza), tetapi indeks yang diperolehi melalui indexFor Subskrip adalah sama, yang bermaksud bahawa dua nilai dengan nilai kunci yang berbeza dan nilai hash yang berbeza dirangkai bersama untuk membentuk senarai terpaut Saya masih ingat membaca artikel yang ditulis oleh orang lain sebelum ini, dan semuanya berkata bahawa nilai hash adalah sama, tetapi nilai utama adalah berbeza akan membentuk senarai terpaut, tetapi dalam penyahpepijatan sebenar, saya dapati hasil yang berbeza
Objek
yang berbeza mungkin mempunyaihashCode
yang sama (yang seterusnya mestilah berbeza, melainkanhashCode
atauequals
ditakrifkan salah );hashCode
yang berbeza mungkin mempunyaiindeks
yang sama (yang seterusnya mestilah berbeza), dan hanya selepas itu senarai terpaut akan terbentuk.Object
可能有相同的hashCode
(反过来一定不同,除非hashCode
或equals
定义错了);不同的
hashCode
可能有相同的index
(反过来一定不同),这时才会形成链表。这里的
hashCode
可能跟你看到的某些文章的hash
hashCode
di sini mungkin tidak mempunyai maksud yang sama denganhash
dalam beberapa artikel yang anda telah lihat. 🎜