使用素数生成唯一哈希码的概率增加了吗?

时间:2017-02-12 22:07:37

标签: java primes hashcode

您可能知道,这是java中hashCode()方法的默认实现。我只是一般认为java通过将对象的内部地址转换为唯一的整数来生成唯一的哈希码(在合理范围内)。我很想知道为什么使用素数。是因为它增加了生成唯一哈希码的概率吗?如果是这样,怎么样?

最后,是否有使用31的具体原因?

非常感谢您的回复!

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((id == null) ? 0 : id.hashCode());
    return result;
}

0 个答案:

没有答案