黑马程序员技术交流社区

标题: compareTo(Object obj) [打印本页]

作者: mengxiang1993    时间: 2015-1-31 17:22
标题: compareTo(Object obj)
这个方法内部是不是调用了equals方法?
还有为什么重写equals方法,也要重写hashcode()方法,

作者: www851903307    时间: 2015-1-31 20:49
先判断的是两个元素的哈希值是否相同。
如果相同,在判断两个对象的内容是否相同。
判断哈希值相同,其实判断的是对象的hashCode的方法。
判断内容相同,用的是equals方法。
作者: 466273082    时间: 2015-1-31 22:26
路过的.过来看看的
作者: yueye13    时间: 2015-1-31 23:42
回复的蛮经典的
作者: huyang936    时间: 2015-2-1 11:47
为了使类具备比较性 需要实现Comparable接口 重写compareTo方法 方法内容自己写 所以没有默认调用equals方法。
作者: huyang936    时间: 2015-2-1 11:54
关于第二个问题:List集合(ArrayList、LinkedList、Vector)判断元素是否相同,用的是元素的equals。HashSet用到是hashCode(先)和equals(后),说白了是由集合底层的数据结构决定的,所有底层是hash表结构(HashMap)的,都是hashCode(先)和equals(后)
作者: mengxiang1993    时间: 2015-2-1 18:53
huyang936 发表于 2015-2-1 11:54
关于第二个问题:List集合(ArrayList、LinkedList、Vector)判断元素是否相同,用的是元素的equals。HashS ...

明白了,谢谢
作者: 刘运召    时间: 2015-2-1 19:16
学习了                     




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2