我的代码中有字符串,我出于某种目的使用它们的哈希码,但我想知道是否有这些哈希码的范围,因为这可能会发生字符串的数量超出哈希码的范围。所以是什么哈希码的范围?
答案 0 :(得分:2)
hashCode
的范围是int
的范围。对于任何所需的hashCode()
,String
都有hashCode
。
答案 1 :(得分:0)
java中hashCode
类的String
方法定义如下......
public int hashCode() {
int h = hash;
if (h == 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
return h;
}
它的字符串总是有一些价值.....所以,我不认为你会用完hashCode的......