hashCode方法的作用和equals方法所比较的内容及lombok注解

重写equals和hashcode

https://blog.csdn.net/javazejian/article/details/51348320

equals方法:

它最开始出现的地方是在Object中(比较的是对象的地址),基本数据类型的不能调用该方法来进行比较。java的包装类型和类库都对它进行了重写,重写后该方法比较的就是内容了。如:Integer,String…

==符号:

如果都是基本数据类型,比的是内容,如果是引用类型,比的是对象的地址

hashcode方法

hashcode主要是为java集合服务的,它通过hash算法,使元素能够被快速查找出来。
举个例子:我们知道Java中的集合(Collection)有两类,一类是List,再有一类是Set。
list集合内的元素是有序的,元素可以重复;set中的元素无序,且元素不可重复。

那么当我们向set中添加一个新元素时,整么知道该元素在set中是否与某个元素重复呢(是否该被添加到set集合中)。
如果没有hashcode方法,我们只能通过遍历集合中的每个元素,通过Object的equals方法将每个元素的地址或内容与新元素比较,返回true则说明新元素与set中的元素有重合(则不会再将新元素添加到set集合中),但这样有个弊端,查找集合中与新元素内容是否相同的操作就比较耗费时间了【一般是O(nlogn)】,为了加速,我们可以通过hash算法来进行元素的添加和元素的查找,从而加快集合的处理效率。当有新元素来的时候,我们可以通过hashcode,在O(1)时间内在set集合中找出是否有重复的元素,如果还需进一步比较内容,则再调用equals方法。

lombok注解:

@Setter
@Getter
== 自动为类加上getter和setter方法 ==
@Data
== 该注解使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。==
@toString(name=false)
类的属性中除name外的都以键值对打印出来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值