标签:java 方法 Object equals hashCode 重写 数据
hashCode() 和 equals()方法的使用时机
一般的像 String类等都是 已经实现了, hashCode() 和 equals()方法的
java object 类是万物的根本, 所有的类都出自于object 类, 所以一个类如果没有重写 hashCode() 和 equals()方法, 那么, 它就会继承 Object类的方法
我们可以看一下 Object类的 hashCode() 和 equals();
public native int hashCode(); # 这里是说hashCode() 返回的是一个整数,(也就是系统的识别码)
public boolean equals(Object obj) {
return (this == obj);
} # equals() 方法是把对象的 地址值做了比较
当我们使用set集合来处理数据时, 就要适当重写数据的 hashCode() 和 equals() 方法了
set集合的主要子类 hashSet()的工作原理,就是一个数组加链表的结构
当一个数据要存入 hashSet() 的时候, jvm 首先是计算这个数据的 hashCode() 值, 如要数组中没有这个hash值,就存入, 如果有,就再个hash值链表中查找,调用这个数据的 equals 方法, 如果equals(),方法也相同,就会认定为这是同一个数据的第二次写入,当然会被丢弃的
compareTo() 方法,是当用来处理的对象,需要排序的时候,要把数据对象的数实现compareAble 接口或者重写 compareTo()方法
标签:java,方法,Object,equals,hashCode,重写,数据 来源: https://blog.csdn.net/hjh15827475896/article/details/114791053
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。