一:equals 和 == 区别
请看下面代码,能猜出结果吗?
编辑搜图
请点击输入图片描述
结果如下:
编辑搜图
请点击输入图片描述
为什么 == 只能比较int类型,而不能比较Integer呢?而equals为什么能?
== 只能被用来比较基本类型变量(int,long.....),而不能比较引用类型(对象)。
那为什么能用equals比较呢?因为Integer重写了equals方法。所以比较对象只能重写equals方法。
源码如下:
编辑搜图
请点击输入图片描述
二:重写equals和hashCode方法
不是说重写equals方法就行了吗?为什么还要重写hashcode方法?其实当 equals 方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。对于HashMap类型的数据,通常会根据hashcode来判断两个值是否相等.所以很有重写的必要。
三:重写流程
对某个类,使用IDEA快速重写equals,hashcode方法
编辑搜图
请点击输入图片描述
2.重写代码如下:
编辑搜图
请点击输入图片描述
这样就可以快速创建一个equals方法比较对象了,你学废了吗?
点击上方,轻松关注!!