Java负数中的哈希编码

时间:2014-03-15 20:51:06

标签: java hash hashtable hashcode negative-number

所以这段代码产生哈希码:

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.

有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

如果您不希望它们为负数,请添加

hash = Math.abs(hash)

这将给出一个非负数。 但要注意,你松了一点;)