Sobes.tech
Junior

Kuriem laukiem jāveido hashCode, ja equals mums ir apmierinošs?

sobes.tech AI

Atbilde no AI

Ja metode equals jau ir ir definēts un darbojas pareizi, tad hashCode jābalstās uz tiem pašiem laukiem, kas piedalās salīdzinājumā equals. Tas ir nepieciešams, lai ievērotu līgumu starp equals un hashCode: vienādi pēc equals objektiem jābūt vienādām hashCode vērtībām.

Piemēram, ja equals salīdzina laukus id un name, tad hashCode jāskaita, balstoties uz šiem pašiem laukiem:

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