Sobes.tech
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