hashcode和equals

1、在HashSet等散列集合中,判断对象相等的步骤:   1.hashcode不相等时,直接false    2.hashcode相等,再equals()   [hashcode的主要目的是提高效率]
2、在ArrayList等非散列集合中,只根据equals()判断相等

3、equals相等,则hashcode一定相等(java要求的),两个对象相等
4、hashcode相等,equals不一定相等,两对象不一定相等;hashcode不相等时,equals不相等,两对象不相等

5、重写hashcode()和equals():[自定义的对象]想放入散列集合(HashMap/LinkedHashMap/HashSet/LinkedHashSet等)时,需要重写这两个方法(因为默认Object的hashcode是对象在内存中地址的哈希码,某些情况下我们需要根据对象的某些属性来判断对象的相等)

6、Object的equals()效果和==相同,都是判断地址是不是相等。

7、两个对象,如果 a.equals(b)==true; 则ab相等,但是地址不一定相等
8、两个对象,如果hashcode相等,对象不一定相等,需要判断equals()

9、equals(): 1.对称性(a.b=b.a)     2.反射性(a.a)    3.类推性(a.b,b.c,a.c)    4.一致性(重复n次结果一致)    5.非空性(equals不同类型对象或者null,总是false)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值