Junior — Middle
Mida juhtub hashCode meetodi tulemusega, kui klass ei ütle seda selgelt üle kirjutada?
sobes.tech AI
Vastus AI-lt
Kui klass ei ühemõtteliselt üle kirjuta meetodit hashCode(), kasutatakse Object klassi rakendust. Sel juhul tagastab hashCode täisarvu, mis tavaliselt põhineb objekti sisemisel aadressil mälus (või teisel JVM-i unikaalsel identifikaatoril).
See tähendab, et erinevate objektide puhul, isegi kui nad on loogiliselt võrdsed, on hashCode erinev, mis võib põhjustada hash-struktuuride (näiteks HashMap või HashSet) ebaõiget tööd, kui hashCode ei ole koos equals üle kirjutatud.
Näide:
Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.hashCode()); // unikaalne number
System.out.println(obj2.hashCode()); // teine unikaalne number