Да, это возможно. Поскольку количество ведер намного меньше числа возможных hashCodes
(количество ковшей пропорционально количеству записей в HashMap
, а число возможных hashCodes
- это число возможных значений int
, что намного больше), окончательное сопоставление hashCode
с ведром выполняется с помощью некоторого оператора модуля, поэтому несколько hashCodes
могут быть сопоставлены с одним и тем же ведром (если, например, у вас есть 16 ведер, то оба значения hashCodes
1 и 17 будут сопоставлены с одним и тем же ведром (обратите внимание, что на hashCode
я не имею в виду значение, возвращаемое методом hashCode
, так как HashMap
применяет дополнительную функцию на этом hashCode
, чтобы улучшить распределение хэш-кодов)).
Именно поэтому hashCode
недостаточно, чтобы определить, присутствует ли ключ, который мы ищем, на карте - мы также должны использовать equals
.
Идеальный ответ! Индекс ковша определяется hashCode()% вместимости – supernova