У меня есть домашнее задание, где мне нужно создать хеш-таблицу для словаря, где пользователь может ввести слово в качестве ключа, и он будет искать и отображать значение.Клавиши таблицы Java Hash. Преобразование строковых ключей в ключи int
Однако я не знаю, как работает преобразование из строкового ключа в ключ int. Это код, который я взял из своего учебника:
public int hashVal(String key, int tableSize)
{
int hashKey= 0;
int temp = 0;
for(int i=0;i<key.length();i++)
{
temp = 37*temp+(int)key.charAt(i);
}
temp%=tableSize;
if (temp<0)
{
temp+=tableSize;
}
hashKey=temp;
return hashKey;
}
Объяснение или простой код были бы очень оценены.
Это вычисляет хэш для строки. Расчет 'temp' не нужен, так как будет выполняться' string.hashCode() '(если вам не нужно это реализовать). Операция mod уменьшает хэш-код до хэш-индекса. Целое число может переполняться до отрицательного числа, так что обрабатывается тоже. –