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

重写equals步骤时,记住,也要重写hashCode方法(当你使用集合HashMap,HashSet,Hashtable)

2013-03-04 
重写equals方法时,记住,也要重写hashCode方法(当你使用集合HashMap,HashSet,Hashtable)看例子吧@Overridep

重写equals方法时,记住,也要重写hashCode方法(当你使用集合HashMap,HashSet,Hashtable)

看例子吧

@Overridepublic int hashCode() {// TODO Auto-generated method stubreturn age*2;}

返回的结果就是hello了。


因为hashCOde有通用约定:

1、只要对象的equals方法所比较的信息没有修改,那么对这同一个对象调用多次,hashCode都必须始终如一的返回同一个整数。

2、如果两个对象equals比较相等,那么hashCode必须相等。

3、如果equals比较不相等,那么hashCode必须不相等。


至于hashCode怎么重写,首先你肯定要清楚equals方法所用到的字段,然后将这些字段完成到散列码的转换,至于如何操作,就看你自己如何定义了。

比如boolean,true->1,false->0等等





热点排行