課程
/后端開發(fā)
/Java
/Java入門第三季
新實例化的課程對象本來就不在courseToSelect集合中啊,contains方法當然會返回false,為什么非得重寫equals方法讓contains返回true呢?
2016-06-10
源自:Java入門第三季 6-1
正在回答
要看比較的目的了,是比較對象(引用)還是比較實際值了。
默認equals在比較倆個對象的時候,是看他們是否指向同一個地址的。
但有時候我們希望比較倆個對象的某些屬性值是否相同,如果相同的話就認為他們的equals為true。
比如:
Student?s1?=?new?Student(1,”name1”); Student?s2?=?new?Student(1,”name1”);
如果用默認的equals比較s1和s2 的話,結果肯定為false,但是我們只是希望
比較他們的name是否相同,這個時候就需要重寫equals方法了。
fenkapian 提問者
其實我感覺不用contains方法,直接用course2.name==name ?這個方法還簡單粗暴
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答為什么containskey()不用重寫equals方法呢
4 回答為啥containsKey()方法不需要重寫equals()方法????
1 回答equals方法重寫
2 回答重寫equals方法
4 回答為什么能在重寫equals語句中用equals方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-06-11
要看比較的目的了,是比較對象(引用)還是比較實際值了。
默認equals在比較倆個對象的時候,是看他們是否指向同一個地址的。
但有時候我們希望比較倆個對象的某些屬性值是否相同,如果相同的話就認為他們的equals為true。
比如:
如果用默認的equals比較s1和s2 的話,結果肯定為false,但是我們只是希望
比較他們的name是否相同,這個時候就需要重寫equals方法了。
2017-01-20
其實我感覺不用contains方法,直接用course2.name==name ?這個方法還簡單粗暴