hashCode和equals的联系
来源:互联网 发布:开淘宝店做淘宝客 编辑:程序博客网 时间:2024/04/28 23:33
hashCode和Equals的联系:http://blog.csdn.net/afgasdg/article/details/6889383
之前的理解:(equals是判断对象的引用是否是一个对象,String的时候也是,两个new String("ABC");equals是相等的因为他们的引用指向都是ABC字符串字面量。这是默认不重写equals的时候,
==就是false,==在判断两个对象是否相等,两个new String("ABC");是两个对象所以说==是false;
hashCode:在set中先用hashCode比较,若不相等则直接插入,若相等是同一种对象,相等后再比较equals,若是都相等则是重复元素则不插入,若不想等则插入。)
现在的理解:
Object类equals默认是比较地址,而String类型的equals是重写后的,他是比较内容的。
==是比较地址,不重写equals实收,equals和==比较的结果是一样的。
hashCode:不重写的时候,只是有同一个对象时相同的,重写之后根据计算属性计算只有是空对象的时候是相同的,一旦有一个对象给属性赋值就不同了。重写equals,一定要重写hashCode,以保证完整性。
将对象放入到集合中时,首先判断要放入对象的hashcode值与集合中的任意一个元素的hashcode值是否相等,如果不相等直接将该对象放入集合中。如果hashcode值相等,然后再通过equals方法判断要放入对象与集合中的任意一个对象是否相等,如果equals判断不相等,直接将该元素放入到集合中,否则不放入。
0 0
- hashCode和equals的联系
- 总结Java equals()和hashCode()的联系
- equals和hashCode没有必然的联系
- hashcode和equals方法的联系
- java的equals和hashcode方法的区别和联系
- hashCode()和equals()的本质区别和联系
- 关于hashCode()和equals()的本质区别和联系
- java中hashcode和equals的区别和联系
- java基础-hashCode()和equals()的本质区别和联系
- Java中equals()和hashCode()的区别与联系
- 详细解释 hashcode equals() "==" 的区别和联系
- ==、equals、hashcode的区别和联系
- Java hashCode() 和 equals()的联系与区别
- equals()方法和hashCode()方法的区别与联系
- hashCode与equals和==的区别与联系
- ==,equals(),hashCode()三者的区别和联系
- hashCode与equals的区别与联系
- hashCode与equals的区别与联系
- leecode 解题总结:52. N-Queens II
- c语言中声明和定义的区别
- MyBatis浅谈
- 如何开网上冲印店
- NtCreateFile获得的设备句柄为什么指向文件对象
- hashCode和equals的联系
- 值得学习的JavaEE相关技术博客
- 【WordPress】WordPress站点绑定多个域名
- .gitnore中有的忽略文件不起作用
- SpringMVC的服务器验证二(注解方式实现)
- C语言中的 字符串
- Openlayers之地图全屏显示
- 对象引用及垃圾收集算法
- 对js Promise理解