为了账号安全,请及时绑定邮箱和手机立即绑定

关于判断List中课程是否存在 为什么要在Course中重写equals()方法??

rt

rt

rt

正在回答

2 回答

首先你得明白contains方法的原理。

http://img1.sycdn.imooc.com//56c81a540001fc1309080506.jpg

如上图,contains(obj)的原理是:

  1. 遍历List中所有的元素。

  2. 每遍历一个元素,就调用这个元素的equals()方法,判断这个元素是否与contain(obj)传入的obj相同。

    即Element.equals(obj);

  3. 若有一个相同,则返回true

  4. 若所有都不相同,则返回false

那么,既然是要调用List中每个元素的equals方法。而现在List的元素都是什么呢?

在这里,就是之前放进去的Course类的对象。也就是说,当contains()遍历每个对象,再调用每个对象的equals()方法时,实际上是调用Course类中的equals()方法。既然你想要equals()方法能做别的事情,只要重写它就好了。

2 回复 有任何疑惑可以回复我~

两个object是通过内存地址来比较时候相同,即使是属性相等的两个对象,如果过对应的不是同一个地址,那么用系统默认的equal比较时就会返回false

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于判断List中课程是否存在 为什么要在Course中重写equals()方法??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信