Sobes.tech
Junior

Na základe ktorých polí je potrebné urobiť hashCode, ak nám vyhovuje equals?

sobes.tech AI

Odpoveď od AI

Ak je metóda equals už definovaná a funguje správne, potom by hashCode mal byť odvodený od tých istých polí, ktoré sa podieľajú na porovnaní v equals. To je nevyhnutné na dodržanie kontraktu medzi equals a hashCode: objekty, ktoré sú podľa equals rovné, by mali mať rovnaký hashCode.

Napríklad, ak equals porovnáva polia id a name, potom by hashCode mal byť vypočítaný na základe tých istých polí:

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