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.