Я читал популярный веб-сайт WordPress, на который есть ссылки на некоторые из приведенных выше популярных ответов вверху. Из того, что я понял, я хотел бы поделиться простым наблюдением, которое я сделал.
Вы можете найти все подробности в статье здесь , но примите во внимание следующее:
- Использование простого числа дает нам «лучший шанс» уникального значения
Общая реализация hashmap хочет, чтобы две вещи были уникальными.
- Уникальный хеш-код для клавиши
- Уникальный индекс для хранения фактического значения
Как получить уникальный индекс? Делая начальный размер внутреннего контейнера также простым. Таким образом, в основном используется Prime, потому что он обладает уникальной особенностью создания уникальных чисел, которые мы в конечном итоге используем для идентификации объектов и поиска индексов внутри внутреннего контейнера.
* +1032 * Пример: * 1 033 *
ключ = "ключ"
значение = "значение"
uniqueId = "k" * 31 ^ 2 +
"e" * 31 ^ 1` +
"y"
отображается на уникальный идентификатор
Теперь нам нужно уникальное местоположение для нашей стоимости - поэтому мы
uniqueId % internalContainerSize == uniqueLocationForValue
, предполагая, что internalContainerSize
также является простым числом.
Я знаю, что это упрощено, но я надеюсь донести общую идею до конца.