Я реализую хэш-карту с нуля, и это меня осенило.Как определить, следует ли перезаписывать значение или использовать стратегию столкновения? (Java HashMaps)
Допустим, у меня есть 3 различных ключей и 3 значения
Keys -> Value: A -> 1, B -> 2,C -> 3
и каждый из них земли в открытом слот в массиве.
Если четвертый ключ D производит один и тот же индекс хэша в качестве одного из ранее 3 клавиш можно использовать любого из стратегий столкновений для обработки этого случая (линейного зондирующего, перефразируя и т.д.)
Однако позволяет сказать, что я хочу для перезаписи [Ключ A, значение 1] с [Ключ A, 99]. Это столкновение, однако Java.Util.HashMap знает, что вы хотите перезаписать значение.
Если возникает столкновение, как вы определяете, перезаписать ли значение или найти открытое местоположение?
Не понимаю. Если есть столкновение, это означает только то, что результат вашей функции bucketing/hash одинаковый для двух ключей. Он ничего не говорит о том, равны ли эти два ключа. Это то, что вы должны проверить. –
Столкновение - это когда два ключа сопоставляются с одним и тем же местом хранения. Перезапись значения - это когда вы хотите обновить значение определенного ключа. –
Обновление ключа является частью интерфейса структуры хешируемых данных. Обработка конфликтов - это часть реализации. –