A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,小白我刚学习j2se,看到这个,想弄明白为为什么要这样,哪位大神能不能通俗易懂的讲解下

4 个回复

倒序浏览
好像比较的时候是先比较哈希值,再比较字符,如果哈希值不一样就不用比较字符了,不知道是不是这样?
回复 使用道具 举报
我们今天刚好学了这个,比如在HashSet集合类中,如果在自定义的类中,不覆盖hashCode() 和equals()方法的话,输出来的结果就无法表现HashSet的唯一性,也就是无重复元素。因为hashCode()方法得到的是由地址值计算出来的逻辑整数表达值,这个值可以将不同的对象区分开。为了在添加元素时,将重复对象排除在外,通过比较hash值是一个很好的途径,但是只比较hash值一个,又不太靠谱,所以重写equals()方法比较内容,就保障了添加元素无重复的准确性。

评分

参与人数 1黑马币 +5 收起 理由
不轻易 + 5 赞一个!

查看全部评分

回复 使用道具 举报 1 0
楼上说的好~~~
回复 使用道具 举报
因为后面设计到集合。集合里有HashSet 需要用到。还有HashMap集合中用作键的对象必须实现hashCode和equals
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马