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); // Генериране на хеш код
}
}