Sobes.tech
Junior — Middle

Чӣ гуна усулҳои equals дар забони Java амалӣ шудаанд ва чӣ гуна барои муқоиса кардани объектҳо истифода мешаванд?

sobes.tech AI

Ҷавоб аз AI

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

Барои муқоисаи дурустии мазмуни объектҳо, синфҳо одатан усули equals()-ро такрор мекунанд, то майдонҳои муҳимро муқоиса кунанд.

Масалан барои такрор кардани equals():

@Override
public boolean equals(Object obj) {
    if (this == obj) return true; // санҷиши муайянӣ
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass other = (MyClass) obj;
    return Objects.equals(field1, other.field1) && field2 == other.field2;
}

Муҳим аст, ки вақте equals() такрор карда мешавад, hashCode() низ такрор карда шавад, то ки объектҳо дар коллексияҳо, масалан, дар HashMap, дуруст кор кунанд.

Истифода:

MyClass a = new MyClass(...);
MyClass b = new MyClass(...);
if (a.equals(b)) {
    // объектҳо аз рӯи мазмун баробар ҳисоб мешаванд
}