hashCode()方法的重写:
@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()方法里面的常量值是31,其他的数不可以吗?
jinxiliuhuo 发表于 2016-9-7 18:49
* 1,31是一个质数,质数是能被1和自己本身整除的数
* 2,31这个数既不大也不小
* 3,31这个数好算,2的五次方-1 ...
细听风语为梧桐 发表于 2016-9-7 21:47
我感觉回答的有些道理
jinxiliuhuo 发表于 2016-9-7 18:49
* 1,31是一个质数,质数是能被1和自己本身整除的数
* 2,31这个数既不大也不小
* 3,31这个数好算,2的五次方-1 ...
jinxiliuhuo 发表于 2016-9-8 00:18
诶,还真没注意,底数为2的确是4位。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |