java基础复习(二) ==和equals和hashCode的区别
2018-03-29 17:59
671 查看
==是运算符
a:对于基本数据类型 ==比较的是基本数据类型的值
b:对于引用数据类型 ==比较的是引用类型的地址值
equals()和hashCode()都是Object类的一个方法;
equals()只能比较引用类型,默认比较地址值。
equals()用于比较两个对象是否相等,其实内部比较的就是两个对象地址,和 == 结果是一样的;
hashCode() 返回的是该对象的哈希码值,是一个离散的int型整数。在集合类操作中经常使用,提高查询速度;
对于ArrayList集合,判断元素是否存在,或者删除元素 ,底层依据都是equals方法。
对于HashSet集合,判断元素是否存在,或者删除元素,底层依据的是hashCode方法和equals方法。
HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。
当元素的hashCode值相同时,才继续判断元素的equals是否为true。
如果为true,那么视为相同元素,不存。如果为false,那么存储。
如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。
a:对于基本数据类型 ==比较的是基本数据类型的值
b:对于引用数据类型 ==比较的是引用类型的地址值
equals()和hashCode()都是Object类的一个方法;
equals()只能比较引用类型,默认比较地址值。
equals()用于比较两个对象是否相等,其实内部比较的就是两个对象地址,和 == 结果是一样的;
hashCode() 返回的是该对象的哈希码值,是一个离散的int型整数。在集合类操作中经常使用,提高查询速度;
对于ArrayList集合,判断元素是否存在,或者删除元素 ,底层依据都是equals方法。
对于HashSet集合,判断元素是否存在,或者删除元素,底层依据的是hashCode方法和equals方法。
HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。
当元素的hashCode值相同时,才继续判断元素的equals是否为true。
如果为true,那么视为相同元素,不存。如果为false,那么存储。
如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。
相关文章推荐
- java基础 equals与==区别,String的hashcode
- Java基础之hashCode()的作用,以及==、equals()和hashCode()区别
- java(15):基础:“==”、equals()和hashCode()的区别
- java基础面试知识点---------java中==和equals和hashCode的区别
- [厉害了,我的JAVA基础](十一)hashCode与equals的区别与联系
- Java基础 equals()、hashCode()和 == 区别
- java基础-hashCode()和equals()的本质区别和联系
- [Java基础] HashCode、equals、==的区别
- Java 基础复习实践 --- Hashcode Equals
- Java基础复习(一)------equals、==和hashCode
- 面试题之java基础:equals()和hashCode()区别?
- Java基础 hashCode() 和equals() 区别和作用
- java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系
- Java基础 Java 中 equals 和 hashCode
- java基础(六)-----浅谈java中“==”和“equals”的区别
- java中equals,hashcode和==的区别
- java基础----比较对象 hashcode 与 equals 与 ==
- 0020 Java中equals()和hashCode()详解【基础】
- Java学习从菜鸟变大鸟之一 hashCode()和equals()的本质区别和联系
- Java中equals()和hashCode()的区别与联系