Sobes.tech
Junior

Java'da equals() metodi nima qiladi?

sobes.tech AI

AIdan javob

Java'da equals() metodi obyektlarni tenglik bo'yicha solishtirish uchun ishlatiladi. Standart holatda, Object sinfida, u obyektlarga havolalarni solishtiradi (ikkita o'zgaruvchi bir xil xotira obyektiga ishora qilayotganini tekshiradi).

Sinflar equals() metodini qayta yozish orqali qiymat bo'yicha solishtirish mantiqini amalga oshirishi mumkin. Bu shuni anglatadiki, ikki turli obyekt, agar ularning maydonlari yoki holati ekvivalent bo'lsa, teng deb hisoblanadi.

equals() ni qayta yozishda, hashCode() metodini ham qayta yozish muhimdir, va shartga amal qilish: agar ikki obyekt equals() bo'yicha teng bo'lsa, ularning hashCode() qiymatlari ham bir xil bo'lishi kerak.

Qayta yozish misoli:

public class Person {
    private String name;
    private int age;

    // konstruktor va getterlar

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
               Objects.equals(name, person.name);
    }

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