首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教,在计算散列码时这些数字是固定的吗

2013-11-23 
请问,在计算散列码时这些数字是固定的吗?书上有一个程序是关于散列码的,我就不写全了,我想问下面的7 11 13

请问,在计算散列码时这些数字是固定的吗?
书上有一个程序是关于散列码的,我就不写全了,我想问下面的7 11 13这样的数字是固定的吗?

public int hashCode()
{
return 7*name.hashCode() + 11*new double(salary).hashCode()+13*hireDay();
}


中间用的*号也是固定的吗?


[解决办法]
不固定,类自己实现,Integer,String 实现的都不相同,看你自己实现了
[解决办法]
当然不是固定的,这个里面的算法自己写
[解决办法]
楼主所说的示例来自于《java核心技术 卷一》。

不是固定的,自己随便写。
hashCode方法与equals方法需要成对重写,即重写了Object类的equals方法后必须还要重写hashCode方法。

重写hashCode方法所要遵循的原则是:
若o1.equals(o2)结果为true,那么o1.hashCode() == o2.hashCode()。

在遵循这个原则的前提下,至于hashCode方法如何实现楼主可以随意。
但还是推荐楼主示例那样写。

热点排行