黑马程序员技术交流社区
标题:
关于对象的疑问
[打印本页]
作者:
唐进
时间:
2012-10-23 00:23
标题:
关于对象的疑问
对象的hashcode和equal方法具体在什么情况下会用?
作者:
刘学宾
时间:
2012-10-23 01:13
equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。
hashCode()是用来产生哈希玛的,而哈希玛是用来在散列存储结构中确定对象的存储地址的,hashcode是用来查找的
。
作者:
qiucheng1990
时间:
2012-10-23 07:10
在批量的对象比较中,hashCode要比equals来得快,但是往往他们是配合使用的,hashcode是散列算法,是将数据依物理地址取余后放在特定位置上;当集合要添加新的元素时,先调用这个元素的hashCode方法,就找到了它可以存放的物理地址,但是需要先判断这个地址上是否有值,如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2