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

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

HashMap 的 containsKey 方法返回 false,但它的鍵是 integer[]

HashMap 的 containsKey 方法返回 false,但它的鍵是 integer[]

守候你守候我 2023-08-04 19:20:09
在解決 hackerrank 上的問(wèn)題時(shí),我發(fā)現(xiàn)由于邏輯錯(cuò)誤,我的輸出與正確答案不同。我重現(xiàn)了邏輯錯(cuò)誤,以便以更好的方式解釋情況。HashMap<Integer[] , Integer> hm = new HashMap<>();//both a and b have different hashcodeInteger[] a = {1, 1, 0, 0};Integer[] b = {1, 1, 0, 0}; hm.put(a,1);if (!hm.containsKey(b)) {    //key does not exists so, create new one      hm.put(b, 1);}else {    //key does exists so, put its value = value + 1    hm.put(b, hm.get(b)+1); }這里 hm.containsKey(b) 返回 false,但如果它返回 true,我的輸出將與正確的輸出匹配。由于 a 和 b 的內(nèi)容相等,如何使 containsKey(b) 返回 true ?
查看完整描述

1 回答

?
慕的地10843

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

您不應(yīng)該使用數(shù)組作為 a 的鍵HashMap,因?yàn)閿?shù)組不會(huì)覆蓋equals和hashCode,因此包含完全相同元素的不同數(shù)組實(shí)例不會(huì)被 視為相同HashMap。


請(qǐng)List<Integer>改用鑰匙。


Map<List<Integer>, Integer> hm = new HashMap<>();


List<Integer> a = List.of(1, 1, 0, 0);

List<Integer> b = List.of(1, 1, 0, 0);


hm.put(a,1);


if (!hm.containsKey(b)) {

    //key does not exists so, create new one  

    hm.put(b, 1);

}

else {

    //key does exists so, put its value = value + 1

    hm.put(b, hm.get(b)+1); 

}


查看完整回答
反對(duì) 回復(fù) 2023-08-04
  • 1 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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