7、雜湊表
阿新 • • 發佈:2022-12-08
雜湊表,也叫做散列表,它通過雜湊碼直接找到指定資料。就和陣列中通過索引獲取元素一樣,很快。
特點:
1、新增快
2、查詢快
3、唯一
4、無序
1、新增資料
步驟:
1、使用hashCode方法獲取資料的雜湊碼。
2、使用雜湊演算法處理雜湊碼,得到資料儲存的位置。
3、判斷:
(1)、無衝突:該位置為空,新增成功。
(2)、發生衝突:位置已經有資料了,使用 equals 方法判斷位置中是否有重複的元素。
有相同資料:新增失敗
沒有相同資料:新增成功
2、查詢資料
步驟:
1、使用hashCode方法獲取資料的雜湊碼。
2、使用雜湊演算法處理雜湊碼,得到資料儲存的位置。
3、判斷:
(1)、無資料:資料不在表中。
(2)、存在資料:依次使用 equals 方法對比資料。
3、hashCode方法
它返回一個整數,是資料的雜湊碼。
4、equals方法
比較兩個資料的值是否相等。
5、裝填因子
它指的是要存放資料的個數和雜湊表的長度之比。
當裝填因子為0.5的時候,雜湊表效能達到最優。
6、減少衝突
提高雜湊表的效率。
方式:
1、改善裝填因子
2、改善雜湊演算法
3、改善處理衝突的方法
Java中的HashSet、HashMap、HashTable(已過時)底層都使用雜湊表實現。