(即equals相等,那么hashCode一定相等,需要注意的是,反过来不一定成立,即hashCode相等不代表equals相等)
如果两个对象根据equals方法比较是不相等的,那么调用这两个对象中任意一个对象的...正如之前提到的,hashCode其实主要用于跟基于散列的集合合作
如HashMap会把相同的hashCode的对象放在同一个散列桶(hash bucket)中,那么即使equals相同而hashCode...不相等,那么跟HashMap一起使用,则会得到与预期不相同的结果....相同,即equals会为true System.out.println(className);
}
className的值为多少呢?...那么问题来了,如何去重写hashCode呢?返回一个固定值?比如1?NO!!!
So,how?
EJ给出的解决办法:
把某个非零的常数值,比如17,保存在一个名为result的int类型的变量中。