為何要重寫Course下的hashCode()和equals()方法,我這樣理解對(duì)不對(duì)?
本來HashSet下的contains()方法是比較student.courses下的元素的哈希碼與course2的哈希碼是否一樣,這當(dāng)然是不一樣的所以返回的是false。而重寫之后,是比較student.courses下的元素的name屬性的哈希碼與course2.name的哈希碼是否一樣,它們是一樣的,所以返回的是true。
這樣理解對(duì)么?一直都一知半解的。。。
2016-04-11
你理解了嗎 ?可以給我說說嗎 ? 我不理解對(duì)于List與Set而言,都是遍歷一邊,分別與courses2.name進(jìn)行equals ??
List不需要重寫 ?但是Set就需要重寫?
這是我理解的hashcode與equals ? (hash比較一個(gè)域,equals比較域中一個(gè)元素.equals為true,hash一定為true;
equals為false,hash不一定為false) ?
在此 contains先比較hash,后比較equals( hash為true,equals不一定為true;hash為false,equals一定為false)?
這是我理解的不知道對(duì)不對(duì) ? ? ?
2016-02-11
java自帶的hashCode()和equals()方法定義比較簡(jiǎn)單,很多時(shí)候不適用我們使用的場(chǎng)合,這兩個(gè)方法在哪里重寫都一樣,只要是在這個(gè)包下的。你使用contains()方法時(shí)候他需要調(diào)用者兩個(gè)方法,他會(huì)優(yōu)先使用重寫的hashCode()和equals()方法
2016-01-24
這樣理解對(duì)的呢???