所以这段代码产生哈希码:
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.
有没有人有任何想法?
答案 0 :(得分:2)
如果您不希望它们为负数,请添加
hash = Math.abs(hash)
这将给出一个非负数。 但要注意,你松了一点;)