Back to questions
ОТП Банк
Junior — Middle
54
Какие методы или свойства необходимо изменить у объекта, чтобы использовать его в качестве ключа в HashMap?
Companies where asked
Answer from AI
sobes.tech AI
Чтобы объект можно было использовать в качестве ключа в HashMap, необходимо переопределить методы equals() и hashCode().
hashCode()должен возвращать целочисленное значение, которое соответствует хэш-коду объекта. Объекты, которые равны поequals(), должны иметь одинаковыйhashCode().equals()должен корректно сравнивать объекты на равенство по логике вашего класса.
Пример:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && name.equals(person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Без правильной реализации этих методов HashMap может работать некорректно, например, не находить ключи или создавать дубликаты.