課程
/后端開發
/Java
/Java入門第三季
老師最后講的好快啊,為什么上一節不用重寫hashCode方法,這一節就需要了呢?
2014-10-30
源自:Java入門第三季 6-2
正在回答
詳細的可以去看HashMap的contains實現,那里是equals和hashCode兩個同時使用了,所以在有Map的時候,必須兩個都要驗證。HashSet也驗證兩個。但是在ArrayList里不驗證hashCode,所以你不重寫hashCode也無所謂。
equals和hashcode方法要同時重寫,并且要在equals為true的時候,hashCode必須要相同。這個已經是一種不成文的規定了,這兩個方法要重寫就要一起重寫,而且IDE里也會將只重寫一個視為警告。所以這兩個方法要同時重寫。
哥呀兩節講的都不是一個內容的,上一節是list,這節是set,能一樣嗎。。。視頻中也講到了,為什么要重寫hashCode,請哥再仔細看下視頻講解
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答for循環和try.catch語句的搭配使用在輸入值時為什么會有問題
5 回答新手有個問題。求個師傅帶路答疑??!
1 回答第10行的代碼
2 回答真沒看懂!
2 回答還是聽不懂 看看這個再理解一下把~
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-26
詳細的可以去看HashMap的contains實現,那里是equals和hashCode兩個同時使用了,所以在有Map的時候,必須兩個都要驗證。HashSet也驗證兩個。但是在ArrayList里不驗證hashCode,所以你不重寫hashCode也無所謂。
equals和hashcode方法要同時重寫,并且要在equals為true的時候,hashCode必須要相同。這個已經是一種不成文的規定了,這兩個方法要重寫就要一起重寫,而且IDE里也會將只重寫一個視為警告。所以這兩個方法要同時重寫。
2014-10-30
哥呀兩節講的都不是一個內容的,上一節是list,這節是set,能一樣嗎。。。視頻中也講到了,為什么要重寫hashCode,請哥再仔細看下視頻講解