Преобразование хэша в индекс (почему так?) в Java HashMap

Почему в Java HashMap используется такой метод индексирования по массиву значений: (length - 1) & hash Ведь для такого метода подходят только массивы длинны 2^x, что не совсем удобно, ведь при увеличении размера массива для, допустим, 100 элементов, он увеличиться сразу в 2 раза (если до этого был размером 2^x, то потом 2^(x+1))

Почему бы не использовать Math.abs(hash % length), ведь он равномерно покрывает все длины массива? Какие минусы есть у такого способа, кроме чуть меньшей производительности?


Ответы (0 шт):