Junior — Middle
За какво е предназначен методът hashCode() в Java и как да го използваме правилно?
sobes.tech AI
Отговор от AI
Методът hashCode() в Java се използва за получаване на хеш код на обект — цяло число, което помага ефективно да се разположат обектите в хеш-базирани структури от данни като HashMap, HashSet и Hashtable.
Правила за използване:
- Ако презаписвате метода
equals(), трябва да презапишете иhashCode(), за да имат равните обекти еднакъв хеш код. - Хеш кодът трябва да бъде стабилен през целия живот на обекта, ако полетата, участващи в изчислението, не се променят.
Пример за презаписване:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return id == person.id && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
Тук hashCode() и equals() са съгласувани, което осигурява правилната работа на колекциите, базирани на хеширане.