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