containsValue(new Student(null,name)中為什么Student的ID對(duì)應(yīng)值是空(null)呢
請(qǐng)各位大神賜教 當(dāng)Student對(duì)象的ID設(shè)置為null時(shí) 與Map中的原值相比較時(shí)不就不相等了嗎?
請(qǐng)各位大神賜教 當(dāng)Student對(duì)象的ID設(shè)置為null時(shí) 與Map中的原值相比較時(shí)不就不相等了嗎?
2015-10-02
舉報(bào)
2016-02-28
因?yàn)閭魅氲膮?shù)只有name屬性,只能判斷Student的Map中是否包含學(xué)生Student為name的Student,在判斷的時(shí)候也只用了name值,這個(gè)從equals方法中就可以看到是比較的 ?.name 是否相等
2015-12-03
老師后面自動(dòng)生成equals方法和hashcode方法中只點(diǎn)擊了name這個(gè)屬性。
2015-10-06
我也在想這個(gè)問題。
自己猜的是因?yàn)槟愀揪蜔o(wú)法確定是否有對(duì)應(yīng)的學(xué)生存在,也就不可能去判斷這個(gè)學(xué)生的ID。因此將ID設(shè)置為null。而且在后面重寫Student類的equals()和hashCode()時(shí),僅僅對(duì)name一項(xiàng)做了判斷而沒有判斷id。