散列函數(shù) (或散列算法,,又稱哈希函數(shù),,英語:Hash Function)是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法,。散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,,將數(shù)據(jù)的格式固定下來。該函數(shù)將數(shù)據(jù)打亂混合,,重新創(chuàng)建一個(gè)叫做散列值(hash values,,hash codes,hash sums,,或hashes)的指紋,。散列值通常用一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串來代表。好的散列函數(shù)在輸入域中很少出現(xiàn)散列沖突,。在散列表和數(shù)據(jù)處理中,,不抑制沖突來區(qū)別數(shù)據(jù),會(huì)使得數(shù)據(jù)庫記錄更難找到,。 重點(diǎn)是唯一性
哈希碼 在Java中,,哈希碼代表了對(duì)象的一種特征,,例如我們判斷某兩個(gè)字符串是否==,如果其哈希碼相等,,則這兩個(gè)字符串是相等的,。其次,哈希碼是一種數(shù)據(jù)結(jié)構(gòu)的算法,。常見的哈希碼的算法有: 1:Object類的hashCode.返回對(duì)象的內(nèi)存地址經(jīng)過處理后的結(jié)構(gòu),,由于每個(gè)對(duì)象的內(nèi)存地址都不一樣,所以哈希碼也不一樣,。 2:String類的hashCode.根據(jù)String類包含的字符串的內(nèi)容,,根據(jù)一種特殊算法返回哈希碼,只要字符串內(nèi)容相同,,返回的哈希碼也相同,。
做了個(gè)小實(shí)驗(yàn) 這樣他們的hash值是不一樣的 用自動(dòng)生成的重寫hashcode方法
由此看出是每一個(gè)字符串去獲得哈希值然后再去拼到一起,但是突然想到,,很多個(gè)參數(shù)會(huì)如何
額 |
|