Таким образом, этот код генерирует хэш-коды:
int x = 33;
int hash = 7;
for (String str: list) {
for (int o = 0; o < str.length(); o++) {
hash = ((33*hash) + str.charAt(o));
}
Однако некоторые из них являются отрицательными. Это потребовало, чтобы с ними обращались во время перегрузки, чтобы их можно было помещать в хеш-таблицу, так как мне тогда нужно было посмотреть на них. Не спрашивайте о том, нужно ли им решать, они просто делают, они не могут быть отрицательными числами.
Я должен сделать это с помощью этого метода:
((ak + b) mod p) mod T; where p is prime.
У кого-нибудь есть идеи?
Если вы не хотите, чтобы они были отрицательными, просто добавьте
hash = Math.abs(hash)
это даст не отрицательное число. Но имейте в виду, что вы теряете бит;)