开发者社区> 问答> 正文

HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?

HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?

展开
收起
叫我饭啊啊 2021-10-25 17:07:09 2700 0
1 条回答
写回答
取消 提交回答
  • hashCode()方法返回的是int整数类型,其范围为-(2 ^ 31)~(2 ^ 31 - 1),约有40亿个映射空间,而HashMap的容量范围是在16(初始化默认值)~2 ^ 30,HashMap通常情况下是取不到最大值的,并且设备上也难以提供这么多的存储空间,从而导致通过hashCode()计算出的哈希值可能不在数组大小范围内,进而无法匹配存储位置

    2021-10-25 17:07:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载