У меня есть базовый класс Dice, который представляет группы игральных костей. Формат, который я использую для них, — это формат NdX от D&D. Где N — количество игральных костей, а X — количество сторон каждой игральной кости. НАПРИМЕР. 5d6 — это группа из 5 кубиков с 6 сторонами каждый.
Я раньше ничего не делал с хэш-кодами и подумал, что это будет достойной практикой. Насколько я понимаю, каждый кубик, равный с помощью методаquals(), должен иметь один и тот же хеш-код, а хеш-коды должны быть «равномерно распределены». Я нашел следующий способ вычисления хэш-кодов.
Код: Выделить всё
@Override
public int hashCode(){
return Objects.hash(numSides, numDice);
}
// algo from https://stackoverflow.com/a/18066516/23651145
И количество кубиков, и количество сторон на каждом кубике могут достигать целочисленного предела, но на практике они, вероятно, не превысят 10 и 100 соответственно. Должен ли я учитывать соответствующие диапазоны при создании формулы хэш-кода? Имеет ли значение порядок переменных? Как мне проверить, насколько хороша данная формула хэш-кода?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... les-ranges