1. 程式人生 > 其它 >7、雜湊表

7、雜湊表

雜湊表,也叫做散列表,它通過雜湊碼直接找到指定資料。就和陣列中通過索引獲取元素一樣,很快。

特點:

  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(已過時)底層都使用雜湊表實現。