亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何要重寫Course下的hashCode()和equals()方法,我這樣理解對不對?

本來HashSet下的contains()方法是比較student.courses下的元素的哈希碼與course2的哈希碼是否一樣,這當然是不一樣的所以返回的是false。而重寫之后,是比較student.courses下的元素的name屬性的哈希碼與course2.name的哈希碼是否一樣,它們是一樣的,所以返回的是true。

這樣理解對么?一直都一知半解的。。。

正在回答

3 回答

你理解了嗎 ?可以給我說說嗎 ? 我不理解對于List與Set而言,都是遍歷一邊,分別與courses2.name進行equals ??

List不需要重寫 ?但是Set就需要重寫?

這是我理解的hashcode與equals ? (hash比較一個域,equals比較域中一個元素.equals為true,hash一定為true;

equals為false,hash不一定為false) ?

在此 contains先比較hash,后比較equals( hash為true,equals不一定為true;hash為false,equals一定為false)?

這是我理解的不知道對不對 ? ? ?

0 回復 有任何疑惑可以回復我~

java自帶的hashCode()和equals()方法定義比較簡單,很多時候不適用我們使用的場合,這兩個方法在哪里重寫都一樣,只要是在這個包下的。你使用contains()方法時候他需要調用者兩個方法,他會優先使用重寫的hashCode()和equals()方法

0 回復 有任何疑惑可以回復我~

這樣理解對的呢???

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為何要重寫Course下的hashCode()和equals()方法,我這樣理解對不對?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號