@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的取值范围

本文解析了hashCode方法的工作原理,特别是为何选择31作为乘子。解释了如何通过此方法提高equals方法效率,避免超出int范围。

6764

被折叠的 条评论
为什么被折叠?



