黑马程序员技术交流社区

标题: 怎么判断新元素与已存在的元素是否相同 [打印本页]

作者: 爱你一万年    时间: 2016-8-20 09:38
标题: 怎么判断新元素与已存在的元素是否相同
Set集合中HashSet子类是元素无序,唯一性的,判断唯一性就是用hashCode值,那么Objcet的hashCode方法与该类的hashCode方法有什么区别
作者: 阿卜    时间: 2016-8-20 11:40
HashSet里的hashCode()方法返回该Set中元素的哈希码的总和。Object中的hashCode()方法返回该对象的哈希码。不过HashSet判断元素唯一性并不是用本类的hashCode()方法,而是使用的作为元素存入的对象的hashCode()和equals()方法。
作者: wyq0627java11    时间: 2016-8-20 12:35
来看看答案
作者: li--yong    时间: 2016-8-20 22:05
加油,一起努力
作者: NewsmallWhite    时间: 2016-8-21 12:25
底层依赖HashCode()与equals()
        首先比较哈希值
        如果相同,继续走,比较地址值或者走equals()方法
        如果不同,就直接添加元素       
       
        简单的说就是:
                先hashCode()值是否相同
                相同::继续走equals()方法
                返回true:说明元素重复,就不添加
                返回false:说明元素不重复,就添加
        不同,就直接添加元素
作者: zztierlie    时间: 2016-8-21 16:20
赞一个,赞一个,么么哒
作者: zztierlie    时间: 2016-8-21 16:21
赞一个,赞一个,么么哒




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