課程
/后端開發(fā)
/Java
/Java入門第三季
還是沒明白 為什么containsKey就不用重寫,containsValue就要重寫呢》
2016-06-21
源自:Java入門第三季 6-4
正在回答
contains一定會涉及判斷相等這一步
現(xiàn)在請題主自己定義一下對象在什么情況下相等?
如果對象里面有五個屬性,題主可能會說:那就是五個屬性都相等才相等啊
嗯,這確實挺貼近“相等”這個詞的含義的,然而sun公司的程序員不這么認為,
嚴格來說,Map和List中的元素(對象)和題主你給contains方法傳的參數(shù)肯定不是同一個對象
所以他們永遠不是絕對相等的,所以老師沒有重寫的時候會輸出false
而并不是所有的時候我們都需要這個對象里面所有的屬性都相等才認為他們相等,
往往只需要主鍵相等,學習了關(guān)系型數(shù)據(jù)庫就明白什么是主鍵了,舉個栗子:身份證號碼是主鍵,名字不是主鍵
重寫equals,hashcode可以讓程序知道這個程序員判斷相等的標準是什么,
其實key也可以重寫,只是key往往是基本數(shù)據(jù)類型或者String,只是他們都只有一個屬性,想不想等就它一個說了算。
說了一大堆廢話,希望可以給新手解惑,不過等你們以后再回過頭想,上面還真的是一堆廢話,
qq_為了美好的明天
如果Key也是自定義對象類型,當然也要重寫,只不過一般沒人吧Key也作為自定義對象類型吧
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答為什么containskey()不用重寫equals方法呢
4 回答為啥containsKey()方法不需要重寫equals()方法????
2 回答containsValue方法為啥要重寫equals方法?。繂为氈貙慼ashcode方法不行嗎?
2 回答為什么要重寫equals方法呢
2 回答重寫后還是false
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-27
contains一定會涉及判斷相等這一步
現(xiàn)在請題主自己定義一下對象在什么情況下相等?
如果對象里面有五個屬性,題主可能會說:那就是五個屬性都相等才相等啊
嗯,這確實挺貼近“相等”這個詞的含義的,然而sun公司的程序員不這么認為,
嚴格來說,Map和List中的元素(對象)和題主你給contains方法傳的參數(shù)肯定不是同一個對象
所以他們永遠不是絕對相等的,所以老師沒有重寫的時候會輸出false
而并不是所有的時候我們都需要這個對象里面所有的屬性都相等才認為他們相等,
往往只需要主鍵相等,學習了關(guān)系型數(shù)據(jù)庫就明白什么是主鍵了,舉個栗子:身份證號碼是主鍵,名字不是主鍵
重寫equals,hashcode可以讓程序知道這個程序員判斷相等的標準是什么,
其實key也可以重寫,只是key往往是基本數(shù)據(jù)類型或者String,只是他們都只有一個屬性,想不想等就它一個說了算。
說了一大堆廢話,希望可以給新手解惑,不過等你們以后再回過頭想,上面還真的是一堆廢話,
2016-06-22
如果Key也是自定義對象類型,當然也要重寫,只不過一般沒人吧Key也作為自定義對象類型吧