Junior
Методи equals() чӣ мекунад?
sobes.tech AI
Ҷавоб аз AI
Метод equals() в Java порівнює два об'єкти, щоб визначити їхню рівність.
За замовчуванням (у класі 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; // Логічне порівняння за полем value
}
@Override
public int hashCode() {
return Objects.hash(value); // Генерація хеш-коду
}
}