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