重写equals方法时,记住,也要重写hashCode方法(当你使用集合HashMap,HashSet,Hashtable)
看例子吧
@Overridepublic int hashCode() {// TODO Auto-generated method stubreturn age*2;}因为hashCOde有通用约定:
1、只要对象的equals方法所比较的信息没有修改,那么对这同一个对象调用多次,hashCode都必须始终如一的返回同一个整数。
2、如果两个对象equals比较相等,那么hashCode必须相等。
3、如果equals比较不相等,那么hashCode必须不相等。
至于hashCode怎么重写,首先你肯定要清楚equals方法所用到的字段,然后将这些字段完成到散列码的转换,至于如何操作,就看你自己如何定义了。
比如boolean,true->1,false->0等等