请问这个hashCode方面为什么要用7 11 13 乘上这些值? 不乘不可以吗? 为什么要多此一举呢? public int hashCode() { return 7*name.hashCode() + 11*new Double(salary).hashCode()+13* hireDay.hashCode(); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样做是想尽量做到两个不同对象的hashcode不一样,因为7,11,13都是质数,这样相乘再相加后相等的可能性会很小。 hashcode 返回值尽量分散。 对象的hashcode应该是在任何情况都不一样的才对呀?什么情况下会一样呢? 当需要用到hash 容器判断两个对象的情况。比如 HashSet<A> hashcode不是任何情况下都不一样。它就是个散列码,比如散列函数为i mod 7,那么9和16的hashcode就是一样的 发个多线程问题,求解 timer事件每隔N秒被触发 一次怎么做 刚学习JAVA,不知道JAVA里面有多少需要去记住的词汇? 我想自学java请大家给一个时间表 java打印问题 弱问下,xml是一种框架,还是编程语言,它和java什么关系? 用 Java 怎样求两个日期之间的差 应届的学生想从事JAVA工作他该怎么办? SCJP1.2证书免费换1.4? 高分求解一个jdbc的问题! 垃圾回收,与答案想的不一样 关于Excel,java,utf-8,jxl字符集与输入输出的问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货