黑马程序员技术交流社区

标题: hashcode和equals方法 [打印本页]

作者: 晨若兰曦    时间: 2015-2-10 14:18
标题: hashcode和equals方法
HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。 当元素的hashCode值相同时,才继续判断元素的equals是否为true。 如果为true,那么视为相同元素,不存。如果为false,那么存储。 如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。   
这句话不是很理解,请高手指教。。

作者: d342784178    时间: 2015-2-10 14:19
就是先比较hashcode的值 如果不一样 就不调用equals()方法了
作者: 枪杆不如笔杆    时间: 2015-2-10 16:29
hashCode()实际上在计算此对象需要存放的地址,默认情况下这个值是与对象的内容有关系的,如果哈希值相同就有两种可能,一个是两个对象是一个对象,或是两个对象经过计算后得到的值是相同的,为了进一步确定属于哪种情况所以才会有equals()函数来判断内容是否真的相等
作者: ㏒假™面具    时间: 2015-2-10 18:19
HashSet在存储对象时的步骤!1.通过hashCode()方法算出对象的地址值,简单说就是其位置!如果在该位置值没有对象,则存储!如果地址值相同,则通过equals()方法判断内容是否相同,相同则不存!不相同则用串联或其他方式存储!




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