Junior
რა აკეთებს equals() მეთოდი?
sobes.tech AI
პასუხი AI-სგან
Java-ში equals() მეთოდი შედარებს ორ ობიექტს თანასწორობისთვის.
ნაგულისხმევად (კლასში Object), ის ამოწმებს, არიან თუ არა ობიექტების მითითებები ერთნაირი (ანუ, მიუთითებენ თუ არა ისინი ერთ და იმავე ნიმუშზე მეხსიერებაში).
კლასები შეიძლება გადაწერონ ეს მეთოდი, რათა განსაზღვრონ ობიექტების ლოგიკური თანასწორობა მათი შიგთავსის საფუძველზე (მაგალითად, ორი String ობიექტი ითვლება თანასწორად, თუ შეიცავს ერთსა და იმავე სიმბოლოების სერიას, მაშინაც კი, თუ ეს სხვადასხვა ნიმუშებია).
equals()-ის გადაწერასთან ერთად, აუცილებელია გადაწეროთ hashCode() მეთოდი, რათა შეინარჩუნოს შემდეგი შეთანხმება: თუ ორი ობიექტი თანასწორია equals()-ის მიხედვით, მათი hashCode() უნდა აბრუნებდეს ერთსა და იმავე მნიშვნელობას.
გადაწერის მაგალითი:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // მითითებების შედარება
if (o == null || getClass() != o.getClass()) return false; // null და ტიპების შემოწმება
MyClass myClass = (MyClass) o; // ტიპის გადატანა
return value == myClass.value; // ლოგიკური შედარება
}
@Override
public int hashCode() {
return Objects.hash(value); // ჰეშკოდის გენერაცია
}
}