黑马程序员技术交流社区

标题: 比较和判断用哈希值时后面乘以一个数是什么意思,? [打印本页]

作者: 冯心程    时间: 2012-7-25 14:08
标题: 比较和判断用哈希值时后面乘以一个数是什么意思,?
本帖最后由 冯心程 于 2012-7-25 19:46 编辑

大家都乘以一个数的话那也不影响大小啊什么的啊   那后面还乘以一个数干嘛 能对比较产生什么影响。。。没想明白
作者: 肖琦    时间: 2012-7-25 14:22
因为重写hashCode() 方法时,你可能要限定比较的方式是按照一定的顺序要求的。
例如: 你比较的是一个Person类,有(String)name,(int)age属性
      public int hashCode(){
              return this.name.hashCode() + age * 88;
      }
   通常有可能在程序中new了两个Person:p1,p2;
     其中p1的name与p2的name不同,age也不同,
     但是,有可能name的hashCode + age就等了,这样就造成p1与p2等了,为了避免这个问题给他随便乘以一个数,让他们的hashCode不可能相等。
希望对你有帮助.....

作者: 冯心程    时间: 2012-7-25 19:45
懂了 谢谢




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