实在不知道问题题目怎么写,谢谢点进来的朋友们.
有一个问题一直想不通.就是 老师从新创建了一个course2.
但是并没有使用coursesToSelect.add()把course2 添加到数列中去.
使用coursesToSelect.contains().来确认数列中是否有course2.我自己也觉得根本就不可能返回true嘛. 结果也确实返回的false.
但是老师接下来说"但是,大多数时候,我们只知道课程的名字,我们也想搜索数列中是否有这门课程"..嗯..我到这里就听不懂了.
因为数列中根本就没有添加course2啊?搜索不到course2返回false不是一件很正常的事情? 然后老师就开始改了equals.改完了就返回了true...
1.course2被创建出来,但是没有被添加到coursesToSelect中,那他再什么地方?
2.老师在7分50s说的那段话是什么意思. "我们只知道课程的名字,想搜索数列中是否有这门课程,我们需要用for遍历.或者改写equals..巴拉巴拉". course2压根没有添加到数列中啊?搜索不到才是理所当然的吧.
3.course2 没有添加到coursesToSelect中,通过改写equals 让coursesToSelect.contains输出了true? ...emmmmm完全搞不懂了
简单来说未重写Course的equals就去之前呢,equals方法比较的是在内存地址的异同;
而重写的equals将比较内存地址的方式改为比较Course对象name属性(String) 是否相同。
新创建的Course对象 course2 当然在coursesToSelect是找不到与其内存地址相同的项的啦
只能找与其name属性(String) 相同的项
你没有理解需求吧!是判断couser2这们课程有没有存在备选课程里面,和有没有添加到备选课程中没有关系
不客气,一起学习