第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

在這節(jié)視頻中,為什么只有比較containsValue的時(shí)候才出錯(cuò),才需要修改hashcode和equals方法?

為什么containsKey的時(shí)候,沒(méi)修改不報(bào)錯(cuò)呢?


正在回答

4 回答

因?yàn)镸ap的鍵值對(duì)應(yīng)的值是唯一的,而值所映射的鍵值卻有可能是多個(gè)的,而Contains方法自帶的比較機(jī)制是比較索引,也就是地址,所以ContainsValue方法需要改寫(xiě)

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

風(fēng)中過(guò)客 提問(wèn)者

非常感謝!
2015-05-21 回復(fù) 有任何疑惑可以回復(fù)我~

個(gè)人理解,containsKey()方法中,調(diào)用的是String類(lèi)型的equals()函數(shù),查閱javaAPI文檔可知,String類(lèi)型已經(jīng)對(duì)equals()方法進(jìn)行了重寫(xiě):“將此字符串與指定的對(duì)象比較。當(dāng)且僅當(dāng)該參數(shù)不為 null,并且是與此對(duì)象表示相同字符序列的 String 對(duì)象時(shí),結(jié)果才為 true”。所以就不需要我們進(jìn)行重寫(xiě)了!

0 回復(fù) 有任何疑惑可以回復(fù)我~

package com.imooc.collection;


import java.util.HashMap;

import java.util.Map;


/** * @author ?guokewind?

?* @date 創(chuàng)建時(shí)間:2015年5月4日 下午12:01:29?

?* @version?

?* @parameter ?

?* @since ?

?* @return ?*/

public class Test3 {

public Map<String, String> students;

/**

* 在構(gòu)造器中初始化students屬性

*/

public Test3() {

this.students = new HashMap<String, String>();

}

public void testPut() {

students.put("1", "xiaoming");

}

public void duibi(String id,String name){

System.out.println(students.containsKey(id));

System.out.println(students.containsValue(name));

}

public static void main(String[] args) {

// TODO Auto-generated method stub

? ? ? ? ? ?Test3 test=new Test3();

? ? ? ? ? ?test.testPut();

? ? ? ? ? Student st=new Student("1","xiaoming");

? ? ? ? ? ?test.duibi("1","2");

? ? ? ? ? ?test.duibi("1","xiaoming");

}


}


0 回復(fù) 有任何疑惑可以回復(fù)我~

比較的是字符串吧?比較字符串的時(shí)候,是需要寫(xiě)equals的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

風(fēng)中過(guò)客 提問(wèn)者

this.students = new HashMap<String, Student>(); key才是 String 類(lèi)型,之后containsValue比較的是student中的name(String類(lèi)型)
2015-05-04 回復(fù) 有任何疑惑可以回復(fù)我~
#2

風(fēng)中過(guò)客 提問(wèn)者

我試了一下 如果 是這樣的 his.students = new HashMap<String, String>(); 這樣的話 是能夠正確比較的。 會(huì)不會(huì)因?yàn)橹氨容^的Value,直接把course2放到containsValue()里面了? 因此導(dǎo)致無(wú)法正確比較
2015-05-04 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

在這節(jié)視頻中,為什么只有比較containsValue的時(shí)候才出錯(cuò),才需要修改hashcode和equals方法?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)