java~重写hashcode时为什么要乘以31

打印 上一主题 下一主题

主题 889|帖子 889|积分 2667

在Java中,重写hashCode()方法时经常会使用31作为乘数,这是由于31具有一些独特的数学性质,使其成为一个优秀的选择。以下是几个原因:
1. 奇质数的特性

31是一个奇数和质数,这意味着它能有用地减少哈希冲突的概率。使用质数作为乘数可以帮助分散哈希值,从而提高哈希表的性能。
2. 位运算服从

在盘算机中,乘以31可以通过位运算来优化:
<ul>x * 31可以用 (x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表