Junior — Middle
Java-da obyektlərin düzgün müqayisəsi üçün hansı vəziyyətlərdə equals metodunu yenidən təyin etməlisiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da equals metodu, sinfinizin obyektlərinin öz kriteriyalarınıza görə bərabərliyini müəyyən etmək istədiyiniz zaman, standart referans müqayisəsindən (Object-də həyata keçirilmiş) fərqli olaraq yenidən yazılmalıdır.
Bu, xüsusən də obyektlərinizin məntiqi olaraq bərabər sayıldığı zaman, məsələn, Person sinifində, obyektlər ad və doğum tarixi uyğun gəldikdə bərabər sayılır.
equals metodunun yenidən yazılması aşağıdakılar üçün vacibdir:
- Ob'ektləri məzmununa görə düzgün müqayisə etmək.
- HashSet və ya HashMap kimi kolleksiyaların düzgün işləməsini təmin etmək, onlar equals istifadə edərək elementlərin unikalığını müəyyən edir.
equals metodunu yenidən yazarkən, bu metodlar arasında müqaviləni qorumaq üçün hashCode metodunu da yenidən yazmaq vacibdir.
equals və hashCode metodlarının nümunə yenidən yazılması:
@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);
}