概念:
雜湊表也叫雜湊表
結構: 結構有多種,最流行、最容易理解的是:順序表+鍊錶
主結構:
順序表,每個順序表的節點單獨引出乙個鍊錶
1.新增資料
1.計算雜湊碼,使用hashcode()方法,返回值是乙個int型別的值,整數的雜湊碼值是本身
2.計算在雜湊表中儲存的位置:
y=k(x)x%11
y:在雜湊表中的儲存位置 x:雜湊碼
3.存入雜湊表:
①一次存入成功
②多次新增成功,出現衝突,呼叫equals方法和對應鍊錶中的元素進行比較,到最後結果都是false,建立新節點,儲存資料,加到鍊錶末尾
③新增失敗,不新增,出現衝突,且equals方法返回true,表明重複,不新增
特點:新增資料快、資料唯
一、無序
2.hascode與equals的神奇作用
hashcode():計算雜湊碼值,是乙個整數,可以根據雜湊碼值計算出資料在雜湊表中的儲存位置
equals():新增時出現衝突,需要使用該方法進行比較,判斷是否相同;查詢時也需要使用該方法判斷是否相同
3.如何減少雜湊衝突
1.雜湊表的長度和表中的記錄數的比例--裝填因子
裝填因子=表中的記錄數/雜湊表的長度
如果裝填因子越小,表明表中還有很多的空單元,則新增發生衝突的可能性越小;而裝填因子越大,則發生衝突的可能性就越大,在查詢時所耗費的時間就越多。
因此,一般情況下,裝填因子取值0.5
2.雜湊函式的選擇
直接定址法、平方取中法、摺疊法、除留取餘法(y = x%11)
3.處理衝突的方法
鏈位址法、開放位址法、再雜湊法、建立乙個公共溢位區
HashTable底層實現
hashtable是繼承與dictionary類,實現了map介面,hashtable的主體還是entry陣列 hashtable的預設容量大小為11,負載因子為0.75 hashtable的主要方法的原始碼實現邏輯,與hashmap中非常相似,有一點重大區別就是所有的操作都是通過synchroni...
hash table 雜湊表(雜湊表)
hash table 也叫雜湊表。涉及到雜湊函式 雜湊衝突處理的問題。雜湊函式是雜湊表的關鍵,是用來從值到雜湊表索引 存放位置 的對映。比如 要存放乙個學校學生的姓名,他們是amanda,jack,andy,tom,bob,black等等500個人。我們可以設計乙個雜湊表,容量為500,來存放這些學...
HashTable 雜湊表(雜湊表)
雜湊表 雜湊表 是根據關鍵字 key 而訪問在記憶體位置的資料結構。其方法是 它通過乙個關鍵值的函式將所需的資料對映到表中的位置來訪問資料,這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表 雜湊表 構造雜湊表的幾種方法 直接定址法 取關鍵字的某個線性函式為雜湊位址,hash key key 或 h...