Sobes.tech
Junior

Na základě kterých polí je třeba udělat hashCode, pokud nás uspokojí equals?

sobes.tech AI

Odpověď od AI

Pokud je metoda equals již definována a funguje správně, pak by hashCode měl být odvozen od stejných polí, která se podílejí na porovnání v equals. To je nutné pro dodržení kontraktu mezi equals a hashCode: objekty, které jsou podle equals rovné, by měly mít stejný hashCode.

Například, pokud equals porovnává pole id a name, pak by hashCode měl být vypočítán na základě těchto stejných polí:

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