Sobes.tech
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() са съгласувани, което осигурява правилната работа на колекциите, базирани на хеширане.