Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Objects.hash()

Вычисляет хеш-код из нескольких значений — для реализации hashCode().

Доступно с: Java 7

Синтаксис

static int hash(Object... values)

Параметры

ПараметрТипОписание
valuesObject...Поля, которые участвуют в equals().

Возвращаемое значение

intХеш-код, учитывающий все значения и их порядок.

Примеры

Одинаковые значения — одинаковый хеш:

void main() {
    IO.println(Objects.hash("Anna", 30) == Objects.hash("Anna", 30));
    IO.println(Objects.hash("Anna", 30) == Objects.hash(30, "Anna"));
    IO.println(Objects.hash((Object) null));
}

Результат:

true
false
31

Примечания

Передавайте те же поля, что сравниваются в equals(), — не больше. null допускается. Для одного значения проще Objects.hashCode(value), который для null возвращает 0.

См. также

  • Object.hashCode() — Возвращает хеш-код объекта — число, по которому HashMap и HashSet быстро находят объект.
  • Object.equals() — Сравнивает объекты по смыслу. По умолчанию работает как ==, поэтому в своих классах его переопределяют.

Вопросы и ответы по теме

В учебнике

  • Равенство и хеш-коды — Сравнение объектов в Java — == и equals, контракт equals и hashCode, Objects.equals и Objects.hash, записи и ошибка с HashSet.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.