Sobes.tech
Junior — Middle

Java'da equals və hashCode metodları arasındakı əsas prinsiplər nələrdir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da equals və hashCode arasındakı əsas prinsiplər:

  • Əgər iki obyekt equals-ə görə bərabərdirsə, onların hashCode-u eyni olmalıdır.
  • Əgər iki obyektin hashCode-u fərqlidirsə, equals mütləq false qaytarmalıdır.
  • Əgər equals false qaytarırsa, hashCode uyğun ola bilər, lakin bu arzuolunmazdır, çünki bu, hash strukturlarının performansını pisləşdirir.

Bu, hash istifadə edən kolleksiyaların düzgün işləməsini təmin edir (HashMap, HashSet), burada hashCode səbətini müəyyən edir və equals obyektlərin dəqiq müqayisəsini həyata keçirir.

Nümunə:

@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(id, person.id);
}

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

Burada, equals və hashCode eyni sahəyə, yəni id-ə əsaslanır və onların uyğunluğunu təmin edir.