Sobes.tech
Junior

Որ դաշտերի հիման վրա պետք է կատարել hashCode, եթե equals-ը մեզ գոհ է անում?

sobes.tech AI

Պատասխան AI-ից

Եթե մեթոդը equals արդեն սահմանված է և ճիշտ է աշխատում, ապա hashCode-ը պետք է հիմնված լինի նույն այն դաշտերի վրա, որոնք մասնակցում են equals-ում համեմատությանը: Դա անհրաժեշտ է, որպեսզի պահպանվի equals և hashCode միջև պայմանագիրը՝ հավասար օբյեկտները պետք է ունենան նույն hashCode-ը:

Օրինակ, եթե equals համեմատում է id և name դաշտերը, ապա hashCode-ը պետք է հաշվարկվի այդ նույն դաշտերի հիման վրա:

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