关于java中hashCode与equals为什么一起重写的问题

java中当hashCode与equals的一同重写主要是为了提高效率,出现在集合中。我们都知道hashSet中是不能 出现相同的元素的,那么实现它的这个方法就是通过equals方法进行比较,然而这样的效率并不高,因为假如我们存入很多元素,而在插入元素时将有很多次的比较,这显然效率不高。而有了hashCode之后,元素在进行比较时先看看由hashCode计算出来的地址中是否有元素,没有则直接存入,有则进行比较之后再存入!这样只要比较最多两次,效率提高!

还有就是hashCode相同的equals一定相同,equals相同的hashCode不一定相同。中的2个方法比较的都是Object地址值是否相同,所以元素不会出现在同一地址,而重写后的则不一定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值