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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么這個(gè) String HashMap 不能通過 *char* 鍵得到正確的值

為什么這個(gè) String HashMap 不能通過 *char* 鍵得到正確的值

湖上湖 2023-03-23 14:21:44
我有這個(gè) String 到 String 的映射,我正在嘗試char作為鍵傳遞Map<String, String> phone = new HashMap<String, String>() {{    put("2", "abc");    put("3", "def");    put("4", "ghi");    put("5", "jkl");    put("6", "mno");    put("7", "pqrs");    put("8", "tuv");    put("9", "wxyz");  }};String letterList = phone.get('2');  //nullString letterList = phone.get(String.valueOf('2'));  //it works為什么第一種情況不起作用?在我的理解中,char可以隱式轉(zhuǎn)換為字符串“2”,并使用 HashMapequals()來比較鍵,以便它應(yīng)該檢索映射中的鍵?
查看完整描述

2 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

為什么第一種情況不起作用?在我的理解中, char 可以隱式轉(zhuǎn)換為 String "2"

你的理解不正確。Achar不會(huì)隱式轉(zhuǎn)換String. 如果你查看文檔,你會(huì)看到這個(gè)方法get(Object key)。我不知道為什么不是這樣get(K key)。但是,這解釋了為什么您的第一個(gè)示例編譯沒有任何錯(cuò)誤:char常量被自動(dòng)裝箱到一個(gè)Character對(duì)象中。由于Character帶有值的'2'不是您的鍵Map,get()因此返回null。


查看完整回答
反對(duì) 回復(fù) 2023-03-23
?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

java.util.Map僅將對(duì)象用作鍵,因此無論何時(shí)您這樣做,map.get('c')因?yàn)?c 是一個(gè)字符,編譯器將執(zhí)行自動(dòng)裝箱操作,將字符 c 原語解析為Character對(duì)象(不是您認(rèn)為的字符串)

所以最后編譯器將解析以下內(nèi)容: map.get('2')進(jìn)入 >map.get(Character.valueOf('2'))

并且由于Character.valueOf('2')您的地圖中不存在密鑰,因此返回 null


查看完整回答
反對(duì) 回復(fù) 2023-03-23
  • 2 回答
  • 0 關(guān)注
  • 125 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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