Der Hash-Code eines Java-Objekts wird durch die folgende Formel generiert: h = (h
Wie wird der Hash-Code eines Objekts in Java generiert?
Hash-Code ist ein int-Wert, der in einem Java-Objekt gespeichert wird und dazu dient, das Objekt schnell zu identifizieren und zu finden. Es wird durch die folgende Formel generiert:
hashCode = (h << 5) - h + x
wobei:
Bei primitiven Typen wird der Hash-Code direkt im Objekt gespeichert, wie zum Beispiel:
int i = 10; System.out.println(i.hashCode()); // 输出:10
Bei Referenztypen wird der Hash-Code basierend auf dem Hash-Code generiert Liste seines Objekts, wobei:
hashCode = (hashcode1 * 31) + (hashcode2 * 31) + ... + (hashcodeN * 31)
31 eine Primzahl ist, die sogenannte „magische Zahl“, die hilft, Hash-Kollisionen zu reduzieren.
Praktischer Fall
Betrachten Sie die folgende Person
-Klasse: 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()
, um gemäß Name
- und Alter
-Attribut-Hashcode-Berechnung. 🎜rrreee🎜Obwohl p1
und p2
im obigen Fall unterschiedliche Objekte sind, sind die Hash-Codes dieselben, da sie dieselben Eigenschaften haben. 🎜Das obige ist der detaillierte Inhalt vonWie wird der Hash-Code eines Objekts in Java generiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!