Эффективная реализация hashCode ()

Я часто автоматически генерирую классыhashCode() метод, использующий IntelliJ IDEA, и обычно метод принимает форму:

result = 31 * result + ...

Мой вопрос: какова цель умножения на 31? Я знаю, что это простое число, но зачем конкретно выбирать 31? Кроме того, если реализацияhashCode() для особенно малого / большого набора данных люди подойдут к этой проблеме по-другому?

Ответы на вопрос(1)

Ваш ответ на вопрос