您的位置:首页 > 其它

使用HashSet 存储自定义对象,为什么需要重写hashCode()和equals()?

2017-03-11 16:24 513 查看
HashSet 存储用的哈希表结构,哈希表需要用到hashCode()和equals()方法:

hashCode()产生hash 值以计算内存位置;

当hash 值相同时要调用equals()方法进行比较。

如果不重写,调用的是Object 的hashcode,而Object 的hashCode 实际上是地址。系统类

已经覆盖了hashCode 方法。

所以HashSet 存储自定义对象的化要重写hashCode()和equals()方法,目的是告诉程序去除

重复元素的策略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  equals hashcode
相关文章推荐