Sobes.tech
Junior

Методи equals() дар Java чӣ мекунад?

sobes.tech AI

Ҷавоб аз AI

Метод equals() дар Java истифода мешавад барои муқоиса кардани объектҳо барои баробарӣ. Ба таври пешфарз, дар синфи Object, он ба ишораҳо ба объектҳо муқоиса мекунад (месанҷад, ки оё ду тағирёбанда ба як объект дар хотира ишора мекунанд).

Синфҳо метавонанд методи equals()-ро такрор нависанд, то логикаи муқоисаи арзишӣ амалӣ кунанд. Ин маъно дорад, ки ду объектҳои гуногун дар назар гирифта мешаванд, агар майдонҳо ё ҳолати онҳо баробар бошанд.

Ҳангоми такрор навиштани equals(), инчунин муҳим аст, ки методи hashCode()-ро такрор нависед, бо риояи шарт: агар ду объект мувофиқи equals() баробар бошанд, hashCode()-и онҳо бояд якхела бошад.

Масалан барои такрор навиштан:

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

    // конструктор ва геттерҳо

    @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);
    }
}