課程
/后端開發
/Java
/Java入門第三季
請各位大神賜教 當Student對象的ID設置為null時 與Map中的原值相比較時不就不相等了嗎?
2015-10-02
源自:Java入門第三季 6-4
正在回答
因為傳入的參數只有name屬性,只能判斷Student的Map中是否包含學生Student為name的Student,在判斷的時候也只用了name值,這個從equals方法中就可以看到是比較的 ?.name 是否相等
老師后面自動生成equals方法和hashcode方法中只點擊了name這個屬性。
我也在想這個問題。
自己猜的是因為你根本就無法確定是否有對應的學生存在,也就不可能去判斷這個學生的ID。因此將ID設置為null。而且在后面重寫Student類的equals()和hashCode()時,僅僅對name一項做了判斷而沒有判斷id。
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
1 回答if(students.containsValue(new Student(null,name))) {
2 回答new Student(String id , String name)
3 回答newstudent 對象中有ID,name,那么添加到students中也有ID,這兩個不就重復嗎?而且student類中為什么可以由Student(ID,name),而不是直接Student(name)?
3 回答給student的id賦值為什么用1+“”???
3 回答Student st = students.get(ID);是什么
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-02-28
因為傳入的參數只有name屬性,只能判斷Student的Map中是否包含學生Student為name的Student,在判斷的時候也只用了name值,這個從equals方法中就可以看到是比較的 ?.name 是否相等
2015-12-03
老師后面自動生成equals方法和hashcode方法中只點擊了name這個屬性。
2015-10-06
我也在想這個問題。
自己猜的是因為你根本就無法確定是否有對應的學生存在,也就不可能去判斷這個學生的ID。因此將ID設置為null。而且在后面重寫Student類的equals()和hashCode()時,僅僅對name一項做了判斷而沒有判斷id。