Цель hashCode
- предоставить быстрое средство идентификации большинства обстоятельств, при которых два объекта будут сравниваться неравно. Функция ha sh, которая имеет уровень ложных срабатываний 1%, в большинстве случаев считается превосходящей функцию, которая имеет уровень ложных срабатываний 0%, но занимает вдвое больше времени.
Существуют некоторые функции хеширования, которые предназначены для использования в качестве «дайджестов», так что две разные строки произвольной длины будут очень вряд ли иметь один и тот же дайджест. Однако, чтобы быть очень эффективными, дайджесты должны быть намного больше, чем 32-битное значение хэш-кода. Хорошо спроектированный 64-байтовый (512-битный) дайджест, как правило, был бы достаточен для того, чтобы охранять строки любой длины достаточно хорошо, чтобы с большей вероятностью ударить молнией дважды в один и тот же уик-энд, так как один выигрывает пять лотерей штата, а не два разные строки, которые дают один и тот же дайджест. Стоимость вычисления хорошей функции дайджеста для строки будет намного выше, чем стоимость сравнения строки с другой строкой, но если каждую строку сравнивать со многими другими строками, вычисляя каждую функцию дайджеста один раз и сравнивая ее с дайджестами каждой строки другая строка может предложить выигрыш в производительности.