什么是哈希碼,?為什么要有哈希碼,? 在Java中,哈希碼是對象的一種標(biāo)記符,,有時(shí)可以用來區(qū)分對象,,就像是門牌號(hào)一樣。 哈希碼的產(chǎn)生: 哈希碼是根據(jù)一定的算法產(chǎn)生的一個(gè)字符序列,,讓同一個(gè)類的每一個(gè)對象按照自己特征上的不同盡量擁有不同的哈希碼,,但是不保證不同的對象會(huì)有相同的哈希碼,這是和算法相關(guān)的,。 例如:Object類的hashcode方法返回的是經(jīng)過一定的算法之后的對象的內(nèi)存地址,,因?yàn)槊恳粋€(gè)對象的物理地址不一樣,所以他們的哈希碼也不一樣,。 String類重寫了hashcode方法,,它返回的是根據(jù)字符串的內(nèi)容運(yùn)算出來的哈希碼,所以只要字符串相同,,它們的哈希碼也相同,。并且String類重寫的equals方法就是比較哈希碼是否一樣來判斷字符串序列是否相同。 |
|