Sobes.tech
Junior — Middle

Ako sa realizuje proces získavania hash kódu v objekte?

sobes.tech AI

Odpoveď od AI

Proces získania hash kódu objektu v Android (Java/Kotlin) sa realizuje pomocou metódy hashCode(), ktorá vracia celé číslo reprezentujúce objekt.

Podľa predvoleného nastavenia, metóda hashCode() v triede Object vracia hodnotu založenú na vnútornej adrese objektu v pamäti, ale pre vlastné triedy sa odporúča túto metódu prepísať, aby sa zabezpečilo správne porovnávanie a použitie v kolekciách, ako je HashMap.

Príklad prepísania hashCode() spolu s equals():

@Override
public int hashCode() {
    int result = 17;
    result = 31 * result + (field1 != null ? field1.hashCode() : 0);
    result = 31 * result + field2;
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass other = (MyClass) obj;
    return Objects.equals(field1, other.field1) && field2 == other.field2;
}

Tu hashCode() vypočíta hash na základe hodnôt polí objektu, čo umožňuje správne použitie objektu v hashových štruktúrach dát.