黑马程序员技术交流社区

标题: HashSet中相同哈希值得对象如何区分,是存放对象实体吗? [打印本页]

作者: 阿里策    时间: 2013-10-14 19:54
标题: HashSet中相同哈希值得对象如何区分,是存放对象实体吗?
本帖最后由 阿里策 于 2013-10-15 18:21 编辑

    毕老师视频第14天第13节,毕老师举了个例子,自己复写hashCode()方法,使其返回值为定值,这样一来,所有的对象的哈希值都是一样的了,那么老师说先存进来一个,然后后来再来的再通过equals方法比较是不是和之前进来的是不是同一个对象,如果不是,就在同一个地址上接着上一个对象存储下来。我有疑问:这两个相同哈希值的对象到底该怎么存呢?不会是存的对象实体吧???
    求指教。

作者: 周志龙    时间: 2013-10-14 20:43
用equals来比较,答案在你问的另一个贴子里解答了
作者: 郑齐育    时间: 2013-10-14 20:43
存的是实体对象,按照hashCode()算法的返回值将对象存到相应的hashCode区域中,hashCode()通常是根据内存地址换算出来的值,储存到hash表中,具体怎么存你可以参考张孝祥老师基础加强的视频里的26里面有对hashCode()进行分析,对你会有帮助的。
作者: To    时间: 2013-10-15 17:59
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
作者: 阿里策    时间: 2013-10-15 18:20
郑齐育 发表于 2013-10-14 20:43
存的是实体对象,按照hashCode()算法的返回值将对象存到相应的hashCode区域中,hashCode()通常是根据内存地 ...

谢谢!明白了
作者: 雷丹    时间: 2013-10-15 19:06
存的是对象地址,用地址去找堆中对象




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