Какая польза от hashCode в Java?

Вы должны загрузить свои временные сборки в другой AppDomain, а когда он не используется, вы можете выгрузить это AppDomain. Это безопасно и быстро.

140
задан jkdev 29 June 2018 в 08:00
поделиться

2 ответа

Из Javadoc:

Возвращает значение хэш-кода для объекта. Этот метод поддерживается для хеш-таблиц, таких как предоставляемые java.util.Hashtable.

Общий договор hashCode заключается в следующем:

  • Всякий раз, когда он вызывается для одного и того же объекта более одного раза во время выполнения Java-приложения, метод hashCode должен последовательно возвращать то же целое число, при условии, что никакая информация, используемая в сравнениях на равенство для объекта, не изменяется. Это целое число не обязательно должно оставаться постоянным от одного выполнения приложения к другому выполнению того же приложения.

  • Если два объекта равны согласно методу equals(Object), то вызов метода hashCode для каждого из двух объектов должен давать одинаковый целочисленный результат.

  • Нене требуется, чтобы, если два объекта не равны в соответствии с методом equals(java.lang.Object), то вызов метода hashCode для каждый из двух объектов должен давать разные целочисленные результаты. Однако программист должен знать, что получение различных целочисленных результатов для неравных объектов может повысить производительность хеш-таблиц.

Насколько это целесообразно, метод hashCode, определенный классом Object, действительно возвращает разные целые числа для разных объектов.(Обычно это реализуется путем преобразования внутреннего адреса объекта в целое число, но этот метод реализации не требуется языком программирования Java.)

30
ответ дан 23 November 2019 в 22:59
поделиться

Хотя хэш-код ничего не делает с вашей бизнес-логикой, в большинстве случаев мы должны позаботиться об этом. Потому что, когда ваш объект помещается в контейнер на основе хэша (HashSet, HashMap...), контейнер помещает/получает хэш-код элемента.

6
ответ дан 23 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: