哈希碼

哈希碼

hashCode是jdk根據對象的地址或者字元串或者數字算出來的int類型的數值 詳細了解請 參考 public int hashCode()返回該對象的哈希碼值。支持此方法是為了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

基本信息

協定

一致性

在 Java 應用程式執行期間,在對同一對象多次調用 hashCode 方法時,必須一致地返回相同的整數,前提是將對象進行hashcode比較時所用的信息沒有被修改。

equals

如果根據 equals(Object) 方法,兩個對象是相等的,那么對這兩個對象中的每個對象調用 hashCode 方法都必須生成相同的整數結果,註:這裡說的equals(Object) 方法是指Object類中未被子類重寫過的equals方法。

即使兩個hashCode()返回的結果相等,兩個對象的equals方法也不一定相等。

附加

如果根據equals(java.lang.Object)方法,兩個對象不相等,那么對這兩個對象中的任一對象上調用 hashCode 方法不一定生成不同的整數結果。但是,程式設計師應該意識到,為不相等的對象生成不同整數結果可以提高哈希表的性能。

重寫

HashMap對象是根據其Key的hashCode來獲取對應的Value。

在重寫父類的equals方法時,也重寫hashcode方法,使相等的兩個對象獲取的HashCode也相等,這樣當此對象做Map類中的Key時,兩個equals為true的對象其獲取的value都是同一個,比較符合實際。

詳細的圖文例子請參考這裡

相關詞條

相關搜尋

熱門詞條

聯絡我們