黑马程序员技术交流社区

标题: 求解!!! [打印本页]

作者: 唐侠君    时间: 2013-12-24 00:39
标题: 求解!!!

如下是一个重写hasCode()的例子:
public int hashCode()
{
     final int prime = 31;
     int result = 1;
     result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
     result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
     return result;
   }

想请问一下prime = 31??有什么作用的??为什么要用31,用别的数字代替行吗??求教,谢谢

作者: 776699    时间: 2013-12-24 02:50
为了生成随机数,可以改变,但是不要太大,返回值别超过int 范围就可以
作者: 闫志军    时间: 2013-12-24 16:27
可以用别的数代替,这样做只是为了确保hashcode()返回值的唯一性,使值不会碰巧相同。




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