Sobes.tech
Junior — Middle

Čo sa stane s výsledkom metódy hashCode, ak ju trieda výslovne ne prepíše?

sobes.tech AI

Odpoveď od AI

Ak trieda výslovne neprepíše metódu hashCode(), bude použitá implementácia z triedy Object. V tomto prípade hashCode vracia celé číslo, ktoré je zvyčajne založené na vnútornej adrese objektu v pamäti (alebo na inom jedinečnom identifikátore JVM).

To znamená, že pre rôzne objekty, aj keď sú logicky rovnaké, bude hashCode odlišný, čo môže viesť k nesprávnemu fungovaniu hash štruktúr (napríklad HashMap alebo HashSet), ak hashCode nebude prepísaný spolu s equals.

Príklad:

Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.hashCode()); // jedinečné číslo
System.out.println(obj2.hashCode()); // iné jedinečné číslo