Junior — Middle
Որ դեպքերում պետք է վերագրեք equals մեթոդը Java-ում՝ ճիշտ համեմատելու համար օբյեկտները։
sobes.tech AI
Պատասխան AI-ից
Java- ում equals մեթոդը պետք է վերագրի, երբ ցանկանում եք սահմանել ձեր սեփական չափանիշները ձեր դասի օբյեկտների հավասարության համար, որոնք տարբերվում են ստանդարտ հղումային համեմատությունից (որը իրականացվում է Object-ում):
Սա հատկապես կարևոր է, եթե ձեր դասի օբյեկտները տրամաբանական առումով համարվում են հավասար, երբ որոշ դաշտեր համընկնում են, օրինակ, Person դասում, օբյեկտները համարվում են հավասար, եթե անունը և ծննդյան ամսաթիվը համընկնում են:
equals մեթոդի վերագրումը անհրաժեշտ է, որպեսզի՝
- Դյուրին համեմատել օբյեկտները բովանդակության հիման վրա:
- Հաստատել HashSet կամ HashMap հավաքածուների ճիշտ աշխատանքը, որոնք օգտագործում են equals՝ տարրերի յուրահատուկությունը որոշելու համար:
equals մեթոդը վերագրելու ժամանակ, կարևոր է նաև վերագրել hashCode, որպեսզի պահպանվի այս մեթոդների միջև պայմանագիրը:
equals և hashCode մեթոդների օրինակ:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return Objects.equals(name, person.name) && Objects.equals(birthDate, person.birthDate);
}
@Override
public int hashCode() {
return Objects.hash(name, birthDate);
}