Back to questions
Junior — Middle
96
Могли бы вы объяснить назначение метода equals в языке Java и как он используется для сравнения объектов?
Answer from AI
sobes.tech AI
Метод equals в Java используется для сравнения объектов на предмет логического равенства, то есть чтобы определить, считаются ли два объекта эквивалентными по содержимому, а не по ссылке.
По умолчанию метод equals унаследован от класса Object и сравнивает ссылки (то есть проверяет, указывают ли две переменные на один и тот же объект). Для корректного сравнения объектов по значению классы переопределяют этот метод.
Пример переопределения equals для класса Person:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Использование equals позволяет сравнивать объекты по содержимому, что важно для коллекций, поиска и других операций.