Sobes.tech
Junior

equals() metodu nə edir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da equals() metodu iki obyekti bərabərliyi üçün müqayisə edir.

Əsasən (Object sinfində), o, obyektlərin referanslarının eyni olub-olmadığını yoxlayır (onlar eyni yaddaş nümunəsinə istinad edirmi).

Sinflər bu metodu yenidən təyin edə bilər, obyektlərin məntiqi bərabərliyini onların məzmununa əsaslanaraq müəyyən etmək üçün (məsələn, iki String obyekti, fərqli nümunələr olsa da, eyni simvol ardıcıllığını ehtiva edirsə, bərabər sayılır).

equals() metodunu yenidən təyin edərkən, hashCode() metodunu da yenidən təyin etmək lazımdır ki, aşağıdakı razılaşma qorunsun: əgər iki obyekt equals()-ə görə bərabərdirsə, onların hashCode() metodları eyni dəyərlər qaytarmalıdır.

Yenidən təyin etmənin nümunəsi:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Referansların müqayisəsi
        if (o == null || getClass() != o.getClass()) return false; // Null və tiplərin yoxlanması
        MyClass myClass = (MyClass) o; // Tipə çevirmə
        return value == myClass.value; // Məntiqi müqayisə
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Hash kodunun yaradılması
    }
}