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

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

需要證明/分解字符串.哈希碼()方法在java中

需要證明/分解字符串.哈希碼()方法在java中

溫溫醬 2022-09-28 14:27:42
我知道字符串.hashCode()方法采用的公式如下:S0x31(n-1)+s1x31(n-2)+…+s(n-1)在我的教科書中,我舉了“貓”這個(gè)詞的例子。'C'  x31^2 + 'a' x 31 +t最終值的給定方式為67,510我對這個(gè)值的來源感到非常困惑,特別是,用于單個(gè)字符的值。我嘗試了37,66和85(分別使用大寫C,小寫a和t的Unicode字符)。這是無效的。有人可以為我照亮這個(gè)嗎?遺憾的是,這是我的教科書給出的唯一例子,沒有試圖澄清或解釋它。
查看完整描述

2 回答

?
波斯汪

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

67 * 31^2 + 97 * 31^1 + 116 * 31^0 = 
67 * 31^2 + 97 * 31 + 116 = 
64387 + 3007 + 116 = 
67510

從 http://www.asciitable.com/ 中獲取67,97和116


查看完整回答
反對 回復(fù) 2022-09-28
?
汪汪一只貓

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

字符串哈希代碼執(zhí)行以下操作:


public int hashCode() {

    int h = hash;

    if (h == 0 && value.length > 0) {

        char val[] = value;


        for (int i = 0; i < value.length; i++) {

            h = 31 * h + val[i];

        }

        hash = h;

    }

    return h;

}

因此,基本上每次迭代都會將現(xiàn)有哈希值乘以31,然后將下一個(gè)值添加到哈希值中。


所以當(dāng)“C”= 67,“a”= 97,“t”= 116時(shí),你得到:


h = 0

h *= 31;

h += 67; // 'C'   


h *= 31;

h += 97; // 'a'


h *= 31;

h += 116;


h ==> 67510


查看完整回答
反對 回復(fù) 2022-09-28
  • 2 回答
  • 0 關(guān)注
  • 96 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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