为什么Object#hashCode()返回int而不是long

为什么不:

public native long hashCode();

代替:

public native int hashCode();

获得唯一哈希码的更高机会?

回答:

因为数组的最大长度为Integer.MAX_VALUE

由于的主要用途hashCode()是确定将对象插入HashMap/ 的后备数组中的哪个插槽Hashtable,因此hashcode>

Integer.MAX_VALUE将无法存储在该数组中。

以上是 为什么Object#hashCode()返回int而不是long 的全部内容, 来源链接: utcz.com/qa/412113.html

回到顶部