Gymterview
junior

Каково максимальное число значений hashCode()

Максимальное число различных значений hashCode() равно 2^32 (4 294 967 296), что следует из сигнатуры метода: int hashCode(). Тип int в Java занимает 32 бита и принимает значения от -2 147 483 648 до 2 147 483 647.

На практике в HashMap количество корзин значительно меньше 2^32 (обычно от 16 до нескольких миллионов), поэтому разные hashCode всё равно отображаются на один индекс корзины. Именно поэтому хорошая хэш-функция должна равномерно распределять значения по всему диапазону int.

На собеседовании: ответ — 2^32, т.к. hashCode() возвращает int. Уточните, что это теоретический максимум, а реальное количество корзин всегда меньше.