Rumah >Java >javaTutorial >Bagaimanakah kod cincang objek dijana dalam Java?
Kod cincang objek Java dijana oleh formula berikut: h = (h
Bagaimana kod cincang objek dijana dalam Java?
Kod cincang ialah nilai int yang disimpan di dalam objek Java dan digunakan untuk mengenal pasti dan mencari objek dengan cepat. Ia dijana oleh formula berikut:
hashCode = (h << 5) - h + x
di mana:
Untuk jenis primitif, kod cincang disimpan terus dalam objek, seperti:
int i = 10; System.out.println(i.hashCode()); // 输出:10
Untuk jenis rujukan, kod cincang dijana berdasarkan kod cincang senarai objeknya, di mana:
hashCode = (hashcode1 * 31) + (hashcode2 * 31) + ... + (hashcodeN * 31)
31 ialah nombor perdana, dipanggil "nombor ajaib", yang membantu mengurangkan perlanggaran cincang.
Kes praktikal
Pertimbangkan kelas Orang
berikut: Person
类:
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public int hashCode() { int hash = 0; if (name != null) { hash += name.hashCode() * 31; } hash += age * 31; return hash; } }
此类覆盖了 hashCode()
方法以生成定制的哈希码,根据 name
和 age
属性哈希码计算。
Person p1 = new Person("John", 25); Person p2 = new Person("John", 25); System.out.println(p1.hashCode() == p2.hashCode()); // 输出:true
在上面的案例中,尽管 p1
和 p2
rrreee
hashCode()
untuk menjana kod cincang tersuai, mengikut Nama
dan age
pengiraan kod cincang atribut. 🎜rrreee🎜Dalam kes di atas, walaupun p1
dan p2
ialah objek yang berbeza, kod cincang adalah sama kerana ia mempunyai sifat yang sama. 🎜Atas ialah kandungan terperinci Bagaimanakah kod cincang objek dijana dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!