Sobes.tech
Junior — Middle

Co se stane s výsledkem metody hashCode, pokud ji třída výslovně nepřepíše?

sobes.tech AI

Odpověď od AI

Pokud třída výslovně nepřepíše metodu hashCode(), bude použita implementace z třídy Object. V tomto případě hashCode vrací celočíselnou hodnotu, která je obvykle založena na vnitřní adrese objektu v paměti (nebo na jiném unikátním identifikátoru JVM).

To znamená, že pro různé objekty, i když jsou logicky stejné, bude hashCode odlišný, což může vést k nesprávnému fungování hash struktur (například HashMap nebo HashSet), pokud není hashCode přepsán spolu s equals.

Příklad:

Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.hashCode()); // unikátní číslo
System.out.println(obj2.hashCode()); // jiné unikátní číslo