问答详情
源自:6-1 学生选课---判断 List 中课程是否存在

7分50秒course2的问题

实在不知道问题题目怎么写,谢谢点进来的朋友们.

有一个问题一直想不通.就是 老师从新创建了一个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完全搞不懂了



提问者:学习为致及 2018-01-08 00:46

个回答

  • 14数学院姚晓文
    2018-01-08 11:32:04
    已采纳

    简单来说未重写Course的equals就去之前呢,equals方法比较的是在内存地址的异同;

    而重写的equals将比较内存地址的方式改为比较Course对象name属性(String) 是否相同。

    新创建的Course对象 course2 当然在coursesToSelect是找不到与其内存地址相同的项的啦

    只能找与其name属性(String) 相同的项

  • 慕姐936777
    2018-03-18 18:15:08

    你没有理解需求吧!是判断couser2这们课程有没有存在备选课程里面,和有没有添加到备选课程中没有关系

  • 14数学院姚晓文
    2018-01-11 12:46:28

    不客气,一起学习