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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mengxiang1993 中级黑马   /  2015-1-31 17:22  /  952 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个方法内部是不是调用了equals方法?
还有为什么重写equals方法,也要重写hashcode()方法,

8 个回复

倒序浏览
先判断的是两个元素的哈希值是否相同。
如果相同,在判断两个对象的内容是否相同。
判断哈希值相同,其实判断的是对象的hashCode的方法。
判断内容相同,用的是equals方法。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
路过的.过来看看的
回复 使用道具 举报
回复的蛮经典的
回复 使用道具 举报
为了使类具备比较性 需要实现Comparable接口 重写compareTo方法 方法内容自己写 所以没有默认调用equals方法。

点评

这个涉及到的是底层是二叉树结构的集合,比如:TreeSet、TreeMap  发表于 2015-2-1 11:56
回复 使用道具 举报
关于第二个问题:List集合(ArrayList、LinkedList、Vector)判断元素是否相同,用的是元素的equals。HashSet用到是hashCode(先)和equals(后),说白了是由集合底层的数据结构决定的,所有底层是hash表结构(HashMap)的,都是hashCode(先)和equals(后)
回复 使用道具 举报
huyang936 发表于 2015-2-1 11:54
关于第二个问题:List集合(ArrayList、LinkedList、Vector)判断元素是否相同,用的是元素的equals。HashS ...

明白了,谢谢
回复 使用道具 举报
学习了                     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马