【Day13】 hashCode 方法是做什么的?什么时候应该重写/覆盖此方法?

在这里插入图片描述

一、hashCode 方法是做什么的?

概述: hashCode 方法时Object类中的一个方法

作用:

  1. hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。
  2. 当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去的对象的hashcode值,如果table中没有改hashcode值,则直接存入;如果有,就调用equals方法与新元素进行比较,相同不存,不同就存入。

equals和hashcode关系

  • 如果equals为true,hashcode一定相等;
  • 如果equals为false,hashcode不一定不相等;
  • 如果hashcode值相等,equals不一定相等;
  • 如果hashcode值不等,equals一定不等;

二 、什么时候应该重写/覆盖hashcode方法?

只有在使用HashMap、HashSet等数据结构时,并且存储的对象是我们自定义的对象时,才需要重写

三、hashcode方法默认根据什么创建的

自己创建对象hashCode是根据对象的地址计算得出的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值