黑马程序员技术交流社区

标题: 为什么重写hashCode()方法时,给的质数是31,而不是别的? [打印本页]

作者: SunCowbee    时间: 2016-9-14 02:14
标题: 为什么重写hashCode()方法时,给的质数是31,而不是别的?
为什么重写hashCode()方法时,给的质数是31,而不是别的?
作者: 荔荔舟    时间: 2016-9-14 02:22
因为31这个数是2的5次方减1,可以直接用位运算移动5位计算,比较方便快捷,而且这个数不大不小,计算也方便。
作者: 15835811325    时间: 2016-9-14 18:41
你也可以给别的  .,,,, , , , 这个别较真  , , , , ,如果你自己重写, , ,,  也是可以用别的数的
作者: Anand    时间: 2016-9-14 20:12
31原因有三个,一个是不大不小,不大是这样不会超出Int的取值范围,不小又可以使得尽量让运算结果不一致;
第二个原有是好算,也就是沙发说的那个原因;第三是因为质数!
作者: 江月念华    时间: 2016-9-14 20:49
老师说,我们会用就好了,不用钻牛角尖,道行还不够,
作者: 你微笑时很美丶    时间: 2016-9-14 21:10
31原因有三个,一个是不大不小,不大是这样不会超出Int的取值范围,不小又可以使得尽量让运算结果不一致;
第二个原有是好算,也就是沙发说的那个原因;第三是因为质数!
作者: djfvv    时间: 2016-9-14 21:13
楼上说的都对  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2