A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么重写hashCode()方法时,给的质数是31,而不是别的?

6 个回复

正序浏览
djfvv 初级黑马 2016-9-14 21:13:58
7#
楼上说的都对  
回复 使用道具 举报
31原因有三个,一个是不大不小,不大是这样不会超出Int的取值范围,不小又可以使得尽量让运算结果不一致;
第二个原有是好算,也就是沙发说的那个原因;第三是因为质数!
回复 使用道具 举报
老师说,我们会用就好了,不用钻牛角尖,道行还不够,
回复 使用道具 举报
31原因有三个,一个是不大不小,不大是这样不会超出Int的取值范围,不小又可以使得尽量让运算结果不一致;
第二个原有是好算,也就是沙发说的那个原因;第三是因为质数!
回复 使用道具 举报
你也可以给别的  .,,,, , , , 这个别较真  , , , , ,如果你自己重写, , ,,  也是可以用别的数的
回复 使用道具 举报
因为31这个数是2的5次方减1,可以直接用位运算移动5位计算,比较方便快捷,而且这个数不大不小,计算也方便。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马