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

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完全搞不懂了



正在回答

3 回答

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

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

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

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

3 回复 有任何疑惑可以回复我~
#1

学习为致及 提问者

看了您的解释明白了很多 谢谢
2018-01-09 回复 有任何疑惑可以回复我~

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

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

不客气,一起学习

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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409775    人
  • 解答问题       4546    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

7分50秒course2的问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号