equals、“==”与hashCode的介绍

1、Object类中的equals方法:用于判断对象的内存地址引用是否为同一个地址,相当于符号”==”。
2、因为Object为所有类的父类,若其他类中重写equals方法,一般情况下表示:对象的内容是否相等来判断对象是否相等。
3、hashCode()则表示求得对象的哈希码,一般用于集合当中,例如Map集合中的key、Set集合中的元素中。当往此类集合中存放对象时,先判断对象的hashCode值是否相等,若不相等,则直接放入;若hashCode值相等,则需要再去判断集合中有没有其他的元素与需要存放的对象是equals的,若equals值不相等,则放入;否则不存放。
4、在Map等集合中,对象的存储是通过一个数组和若干个链表来存放对象的(源码),hashCode决定了对象存放在数组中的哪个位置(index =( key.hashCode())% Entry[].length),而equals则用于判断相同hashCode值的对象是否为同一个对象。有一个原则,如果两个对象是equals的,则具有相同的hashCode值,反之,如果两个对象的hashCode值是相同的,其equals值不一定相等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值