Rumah > Soal Jawab > teks badan
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
PHP中文网2017-05-17 10:01:13
Object (key) -> hashCode -> index
Objek
yang berbeza mungkin mempunyai hashCode
yang sama (yang seterusnya mestilah berbeza, melainkan hashCode
atau equals
ditakrifkan salah );hashCode
yang berbeza mungkin mempunyai indeks
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 dengan hash
dalam beberapa artikel yang anda telah lihat. 🎜