关闭

java中重写的hascode中的31是怎么来的

65人阅读 评论(0) 收藏 举报
分类:
@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + age;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}
其中
hashCode()的使用时为了减少equal方法的使用,使工作更加高效方便,那么
final int prime = 31;是怎么回事呢,为什么偏偏是31呢
原理:
   31是个不大不小的质数(2的5次方-1(即1<<<<<-1))使<pre name="code" class="java">ashCode()中的result值不会大于int的取值范围




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    联系我
    QQ:1808912746
    群号: 235376178
    个人资料
    • 访问:17725次
    • 积分:636
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:35篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档