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

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

在這章節中重寫 equals 的作用,是什么,在哪里有掉用過?

提個問題: item實體類中重寫的的equals方法不知道哪里有掉用過,,,

正在回答

2 回答

public?boolean?addGoodsInCart(items?item,?int?number)?{
		if?(goods.containsKey(item))?{
			goods.put(item,?goods.get(item)?+?number);
		}?else?{
			goods.put(item,?number);
		}
		calTotalPrice();
		return?true;
	}

map和set集合比較是否包含某一個元素,需要重寫equals和hashcode方法。

list集合比較是否包含某一個元素,需要重寫equals方法。

建議再好好學習下泛型,基礎知識不夠牢固。

如果不重新寫,goods會把兩個同樣的item給添加進來。因為這兩個item雖然屬性相同但其實是不同的對象。

3 回復 有任何疑惑可以回復我~
#1

Angular_Dracula 提問者

非常感謝!確實如此~
2016-03-04 回復 有任何疑惑可以回復我~
#2

iMcLaren

看了hashmap的源代碼。里面寫著使用containsKey()方法后可以覆蓋原來的的相同鍵值對(If the map previously contained a mapping for the key, the old) 就是看不懂哪一段代碼表示調用這個方法后可以使覆蓋enable。。。還是圖樣。。。我在樓下貼一下代碼吧。。
2016-05-12 回復 有任何疑惑可以回復我~
#3

小小徐life

逗比 原因是containsKey() 方法里面調用了hsahCode() equals()方法; 沒看源代碼就出來裝逼了 這樣不好
2016-05-26 回復 有任何疑惑可以回復我~
#4

慕神7267176

為什么list集合只需要重寫equals()方法,難道就不需要重寫hashcode()方法來保證地址一樣嗎
2016-11-07 回復 有任何疑惑可以回復我~
查看1條回復
????final?Node<K,V>?getNode(int?hash,?Object?key)?{
????????Node<K,V>[]?tab;?Node<K,V>?first,?e;?int?n;?K?k;
????????if?((tab?=?table)?!=?null?&&?(n?=?tab.length)?>?0?&&
????????????(first?=?tab[(n?-?1)?&?hash])?!=?null)?{
????????????if?(first.hash?==?hash?&&?//?always?check?first?node
????????????????((k?=?first.key)?==?key?||?(key?!=?null?&&?key.equals(k))))
????????????????return?first;
????????????if?((e?=?first.next)?!=?null)?{
????????????????if?(first?instanceof?TreeNode)
????????????????????return?((TreeNode<K,V>)first).getTreeNode(hash,?key);
????????????????do?{
????????????????????if?(e.hash?==?hash?&&
????????????????????????((k?=?e.key)?==?key?||?(key?!=?null?&&?key.equals(k))))
????????????????????????return?e;
????????????????}?while?((e?=?e.next)?!=?null);
????????????}
????????}
????????return?null;
????}

????/**
?????*?Returns?<tt>true</tt>?if?this?map?contains?a?mapping?for?the
?????*?specified?key.
?????*
?????*?@param???key???The?key?whose?presence?in?this?map?is?to?be?tested
?????*?@return?<tt>true</tt>?if?this?map?contains?a?mapping?for?the?specified
?????*?key.
?????*/
????public?boolean?containsKey(Object?key)?{
????????return?getNode(hash(key),?key)?!=?null;
????}


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

舉報

0/150
提交
取消

在這章節中重寫 equals 的作用,是什么,在哪里有掉用過?

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

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

幫助反饋 APP下載

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

公眾號

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