Sobes.tech
Junior — Middle

Welke gevolgen hebben twee objecten met dezelfde hash-code?

sobes.tech AI

Antwoord van AI

Als twee objecten dezelfde hash-code hebben, wordt dit een hash-collisie genoemd. In Java is dit normaal en te verwachten, omdat de hash-code een int is en er veel meer objecten kunnen zijn. Gevolgen:

  • Collisies kunnen de prestaties van hash-gegevensstructuren (zoals HashMap of HashSet) verminderen, omdat objecten met dezelfde hash-code in dezelfde bak (bucket) worden opgeslagen, en bij zoeken objecten via equals moeten worden vergeleken.
  • Het is belangrijk dat, bij gelijke hash-codes, de equals-methode de objecten correct onderscheidt, anders kunnen gegevens worden overschreven of verloren gaan.

Voorbeeld:

Map<MyObject, String> map = new HashMap<>();
// Als MyObject hashCode() overschrijft, maar equals() niet alle velden meeneemt,
// kunnen er fouten optreden bij het werken met de collectie.