字符串的哈希码范围是多少?

4

我在代码中使用字符串,并对它们进行哈希处理以达到某些目的,但我想知道这些哈希码的范围是否有限制,因为可能会出现字符串数量超过哈希码范围的情况。那么,哈希码的范围是什么?


2
哈希码的范围是从Integer.MIN_VALUE到Integer.MAX_VALUE。字符串的哈希码大部分会出现重复。这就是鸽巢原理。 - st0le
2个回答

3
< p > hashCode 的范围是int的范围。对于任何想要的hashCode(),都有一个具有该hashCodeString。< /p >

0

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的可能性...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接