contains方法,及重写equals&hashCode

一开始我以为,contains方法的比较是基于==的,也就是说,假设我有一个Set<String>,里面有一个"zzj"的String对象,如果我要判断"zzj"在不在这里面,实际上是做不到的,只能判断这个对象在不在这里面,但是后来无意中看到了他的规约,我发现他的等于是调用的equals方法(虽然对于Object,equals就是==),所以如果有如下代码——

实际上的输出是——

这个看似不经意的细节其实带来了很大的便捷,因为如果我们要设计一个ADT,且给出了自己设定的equals方法,那么对于此类contains方法的调用将会非常便捷,值得注意的是,此时还需要重写hashCode方法——

然后此时,equals方法就重写成了,只要A字段相同,我们就认为两个对象相同,现在我们在主程序里面运行这个——

可以看到结果是——

 

真的是很方便。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值