Sobes.tech
Junior — Middle

Que dados de origem são usados para determinar o valor de hashCode em um objeto?

sobes.tech IA

Resposta da IA

O valor de hashCode num objeto é geralmente calculado com base nos campos do objeto que determinam sua singularidade e igualdade. Em Java, para que as coleções funcionem corretamente (por exemplo, HashMap, HashSet), é importante que os campos envolvidos no método equals() também sejam utilizados ao calcular hashCode().

Por exemplo, se um objeto representa uma pessoa com os campos id, name e age, e a igualdade é definida apenas por id, então hashCode também deve ser calculado com base em id.

Exemplo:

@Override
public int hashCode() {
    return Objects.hash(id);
}

Se todos os campos forem considerados, pode-se usar:

@Override
public int hashCode() {
    return Objects.hash(id, name, age);
}

A regra principal é que os campos envolvidos em equals() devem ser considerados em hashCode() para garantir o comportamento correto das estruturas de dados baseadas em hash.