【发布时间】:2014-03-15 20:51:06
【问题描述】:
所以这段代码产生哈希码:
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.
有人有什么想法吗?
【问题讨论】:
-
获取结果的绝对值。
-
@Sotirios Delimanolis 你是什么意思?怎么样?
-
你是什么意思如何?如何获得绝对值?我会让你弄清楚。
-
你应该可以在
BigInteger使用;或者,如果您关心性能并且您处理大量数字,请查看apfloat -
“超载期间”是什么意思?
标签: java hash hashtable hashcode negative-number