Junior — Middle
È possibile che due oggetti considerati diversi da equals abbiano lo stesso valore di hashCode?
sobes.tech AI
Risposta dell'AI
Sì, è possibile. In Java, il contratto dei metodi equals() e hashCode() richiede che se due oggetti sono uguali secondo equals(), allora devono avere lo stesso hashCode(). Ma il contrario non è obbligatorio: due oggetti con lo stesso hashCode() possono non essere uguali secondo equals().
Questo perché hashCode() restituisce un valore intero di dimensione fissa, e diversi oggetti possono avere collisioni — lo stesso hash.
Ad esempio, nelle collezioni come HashMap o HashSet, si confronta prima il hashCode(), e poi si usa equals() per determinare se gli oggetti sono esattamente uguali.