一、常見型別的幾個案例
class people
public class test
}
列印輸出結果
10
65-553310500
48690
people@7852e922
2018699554
二、分析
1、integer型別的資料,返回的hash值為資料本身;
2、物件型別的資料,返回的一串字元;
3、string型別的資料,返回一串字元;
三、原始碼的實現
object對hashcode()的方法實現
public native int hashcode();
string 對hashcode()的方法實現
public int hashcode()
hash = h;
}return h;
}
integer對hashcode()的實現
@override
public int hashcode()
四、了解下string對hashcode的計算
1、在string物件的建立,都是將string資料拆分為char型別 private final char value;
2、對於計算hash值,為了區別"123"和"321"計算hash值一樣的問題,對hash值計算時新增"權重"的思想;
所以對於stirng型別的hash值計算思路:
public class test
}
查詢ascii碼,我們知道a對應的十進位制為65;b為66;c為67
public int hashcode()
hash = h;
}return h;
}
他的計算過程為
1、(31*0+'a') 65
2、(31*0+'a')*31+'b' 65*31+66 = 2081
3、((31*0+'a')*31+'b')*31+'c' 2081*31+67=64578
java學習第44天,hashCode
1,當乙個元素存到 hashmap 裡面以後 不要修改元素的內容 hashcode 在計算的時候 可能會使用元素的內容 如果修改了元素的內容的話 hashcode 的值可能就會發生改變 會影響元素的遍歷 2,hashmap 在剛開始建立的時候 預設有 16 的容量 size 獲取到的是當前實際放在h...
JAVA中hashCode的編寫
1 把某個非零常數值,比如17,儲存在乙個叫result的int型別的變數中。2 對於物件中的關鍵域f 指equals方法中考慮的每乙個域 完成以下步驟 a 為該域計算int型別的雜湊碼c i 如果該域是boolean型別,則計算 f 0 1 ii 如果該域是byte char short或者int...
java中hashcode的理解
hashcode 是幹什麼用的?2008年09月29日 星期一 07 32 p.m.首先hashcode是雜湊演算法的一中簡單實現,他是乙個物件的雜湊嗎值。一般和equals一起使用。hashcode也是用來查詢的,如果你學過資料結構就應該知道,在查詢和排序這一章有 例如記憶體中有這樣的位置 0 1...