編寫hashCode 的基本指導

2021-07-23 02:56:57 字數 442 閱讀 1010

1.給int變數賦予某個非零值常量,比如17.

2.位物件內每個有意義的域f(既每個可以做equals()操作的域)計算出乙個int雜湊碼c.

boolean    c=(f?0:1)

byte、char、short或int c=(int)f

long c=(int)(f^(f>>>32))

float c=float.floattointbits(f)

double long l=double.doubletolongbits(f)

object c=f.hashcode()

陣列 對每個元素應用上述規則

3.合併計算得到的雜湊碼:

result = 37*result + c

4.返回result

5.檢查是否有相同的hashcode。

JAVA中hashCode的編寫

1 把某個非零常數值,比如17,儲存在乙個叫result的int型別的變數中。2 對於物件中的關鍵域f 指equals方法中考慮的每乙個域 完成以下步驟 a 為該域計算int型別的雜湊碼c i 如果該域是boolean型別,則計算 f 0 1 ii 如果該域是byte char short或者int...

編寫有效的事條指導原則

以下內容純當做筆記,來自sql server 2005 聯機叢書。以下是編寫有效事務的指導原則 為了防止併發問題和資源問題,應小心管理隱式事務。使用隱式事務時,commit 或 rollback 後的下乙個 transact sql 語句會自動啟動乙個新事務。這可能會在應用程式瀏覽資料時 甚至在需要...

HashCode的利與弊

hashcode是怎麼來的?將物件實體地址轉換成乙個整數,然後該整數通過hash函式的演算法就得到了hashcode。該整數和hashcode是對應的,而物件的實體地址和該整數也是對應的。所以,物件的實體地址,整數,hashcode是一種對映關係。查詢效率高!為什麼查詢效率高?因為採用雜湊表,也就是...