第2个回答 2007-09-09
我相信既然你已经提到equals的重写问题,那么你一定知道equals是什么含义,所以我就不说它了,说说hashcode
首先我想说hashcode的调用的条件。
如果你想往map里面放一个类作为map的键值,这个类又是你自己设计的,或者这个类不是你写的但是你修改了这个类的equals方法,这个时候,你就要注意重写hashcode方法。
这样 当你往map里放值得时候,系统会调用这个对象的.hashcode()方法来生成相应的hash值,来映射相应的对象。
如果同一个类的两个对象的属性值相等,那么他们的hashcode一定相等吗
这个要看你具体如何实现你的hashcode,如果你希望他们的值一样hashcode也一样,你就可以这样实现。
但是hashcode的实现,一般要满足几个特征,比如
自反性,传递性什么的。