Junior — Middle
É possível que dois objetos considerados diferentes por equals tenham o mesmo valor de hashCode?
sobes.tech IA
Resposta da IA
Sim, é possível. Em Java, o contrato dos métodos equals() e hashCode() exige que, se dois objetos forem iguais segundo equals(), eles devem ter o mesmo hashCode(). Mas o inverso não é obrigatório: dois objetos com o mesmo hashCode() podem não ser iguais segundo equals().
Isto deve-se ao fato de que hashCode() retorna um valor inteiro de tamanho fixo, e objetos diferentes podem ter colisões — o mesmo hash.
Por exemplo, em coleções como HashMap ou HashSet, primeiro compara-se o hashCode(), e depois usa-se equals() para determinar se os objetos são exatamente iguais.