Sobes.tech
Junior — Middle

Wat gebeurt er met het resultaat van de hashCode-methode als de klasse deze niet expliciet overschrijft?

sobes.tech AI

Antwoord van AI

Als de klasse de methode hashCode() niet expliciet overschrijft, wordt de implementatie uit de klasse Object gebruikt. In dit geval geeft hashCode een geheel getal terug dat meestal gebaseerd is op het interne adres van het object in het geheugen (of een andere unieke identificator van de JVM).

Dit betekent dat voor verschillende objecten, zelfs als ze logisch gelijk zijn, hashCode verschillend zal zijn, wat kan leiden tot incorrecte werking van hash-structuren (bijvoorbeeld HashMap of HashSet), als hashCode niet samen met equals wordt overschreven.

Voorbeeld:

Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.hashCode()); // uniek nummer
System.out.println(obj2.hashCode()); // ander uniek nummer