Java Object equals() & hashCode()
2008-12-19 23:03
501 查看
在Java Object中有两个基本的方法: equals和hashCode.
在基本的类中,主要使用equals方法来进行2个对象是否相等的判断。对于Java中的集合类中进行相同对象的判断则通过hashCode和equals两个基本方式来进行判断的。比如Set中不允许有重复的元素。
equals和hashCode的关系:
equals相等的对象,其hashCode一定相同。
hashCode相同的,其equals方法的结果不一定相同。
但是,对于equals方法本身比较复杂的情况,或者集合中元素较多的时候,基于效率的考虑,主要是通过hashCode来加快对象的比较速度;Hibernate本身就是这么作的。
obj1==obj2:主要是判断2个对象本身的本地地址引用是否相同。
对于自定义的POJO对象,如果要进行对象本身是否相同的判断,就需要实现其equals或者hashCode方法。
JDK自带的String在判断equal的时候,就是通过,现判断地址,然后判断是内容是否相同的方式来进行的。
在基本的类中,主要使用equals方法来进行2个对象是否相等的判断。对于Java中的集合类中进行相同对象的判断则通过hashCode和equals两个基本方式来进行判断的。比如Set中不允许有重复的元素。
equals和hashCode的关系:
equals相等的对象,其hashCode一定相同。
hashCode相同的,其equals方法的结果不一定相同。
但是,对于equals方法本身比较复杂的情况,或者集合中元素较多的时候,基于效率的考虑,主要是通过hashCode来加快对象的比较速度;Hibernate本身就是这么作的。
obj1==obj2:主要是判断2个对象本身的本地地址引用是否相同。
对于自定义的POJO对象,如果要进行对象本身是否相同的判断,就需要实现其equals或者hashCode方法。
JDK自带的String在判断equal的时候,就是通过,现判断地址,然后判断是内容是否相同的方式来进行的。
相关文章推荐
- Java记录 -57- Object的equals、hashcode和toString方法
- java Object对象中hashCode和equals方法学习
- java的object重写equals时为什么有必要重写hashcode
- JAVA中Object的equals和hashCode的关联
- Java Object equals()和hashCode()
- Java的Object的equals和hashCode函数与集合类联合使用的问题解决方案
- 讲的很详细的一篇关于object equals() & hashCode() 的文章
- Java Object中的equals和hashCode
- Java中的hashcode()与equals()的用法详解&&Java中的对象比较(==)与值比较equals()的用法
- Java管理对象神奇之Object类的equals和hashcode
- [Java] Object方法浅析(一): equals与hashCode
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- 集合框架----Java管理对象神奇之Object类的equals和hashcode
- JAVA Object对象(toString、equals、hashCode方法)、String类、StringBuffer、StringBuider、System、Runtime、Date、Mat
- 重写Java Object对象的hashCode和equals方法实现集合元素按内容判重
- java.lang.Object 对象中 hashCode 和 equals 方法详解及其延伸
- JAVA源码分析之---Object类(二)---hashCode,equals,clone方法的使用
- Java记录 -57- Object的equals、hashcode和toString方法
- 集合框架----Java管理对象神奇之Object类的equals和hashcode
- java.lang.Object的equals()和hashCode()方法小结