我在代码中使用字符串,并对它们进行哈希处理以达到某些目的,但我想知道这些哈希码的范围是否有限制,因为可能会出现字符串数量超过哈希码范围的情况。那么,哈希码的范围是什么?
hashCode
的范围是int
的范围。对于任何想要的hashCode()
,都有一个具有该hashCode
的String
。< /p >
Java中String
类的hashCode
方法定义如下...
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的可能性...