Sobes.tech
Junior — Middle

¿Es posible que dos objetos considerados no iguales por equals tengan el mismo valor de hashCode?

sobes.tech AI

Respuesta de la IA

Sí, es posible. En Java, el contrato de los métodos equals() y hashCode() requiere que si dos objetos son iguales según equals(), entonces deben tener el mismo hashCode(). Pero lo contrario no es obligatorio: dos objetos con el mismo hashCode() pueden no ser iguales según equals().

Esto se debe a que hashCode() devuelve un valor entero de tamaño fijo, y diferentes objetos pueden tener colisiones — el mismo hash.

Por ejemplo, en colecciones como HashMap o HashSet, primero se compara el hashCode(), y luego se usa equals() para determinar exactamente si los objetos son iguales.