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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐进 中级黑马   /  2012-10-23 00:23  /  1169 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对象的hashcode和equal方法具体在什么情况下会用?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

2 个回复

倒序浏览
equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。
hashCode()是用来产生哈希玛的,而哈希玛是用来在散列存储结构中确定对象的存储地址的,hashcode是用来查找的

评分

参与人数 1黑马币 +9 收起 理由
韩军博 + 9

查看全部评分

回复 使用道具 举报
在批量的对象比较中,hashCode要比equals来得快,但是往往他们是配合使用的,hashcode是散列算法,是将数据依物理地址取余后放在特定位置上;当集合要添加新的元素时,先调用这个元素的hashCode方法,就找到了它可以存放的物理地址,但是需要先判断这个地址上是否有值,如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址;

评分

参与人数 1黑马币 +9 收起 理由
韩军博 + 9

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马