哈希表,也叫散列表,英文名為Hash table,是根據關鍵碼值(Key value)而直接進行訪問的數據結構。它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函式叫做散列函式,存放記錄的數組叫做散列表。
哈希表的關鍵思想是使用哈希函式,將鍵(key)和值(value)映射到對應表的某個區塊中。可以將算法思想分為兩個部分,向哈希表中插入一個關鍵字時,哈希函式決定該關鍵字的對應值應該存放到表中的哪個區塊,並將對應值存放到該區塊中;在哈希表中搜尋一個關鍵字時,使用相同的哈希函式從哈希表中查找對應的區塊,並在特定的區塊搜尋該關鍵字對應的值。
在哈希表的實際套用中,關鍵字的類型除了數字類型,還有可能是字元串類型、浮點數、大整數,甚至還有可能是幾種類型的組合。一般會將各種類型的關鍵字先轉換為整數類型,再通過哈希函式,將其映射到哈希表中。而關於整數類型的關鍵字,通常用到的哈希函式方法有:直接定址法、除留餘數法、平方取中法、摺疊法、隨機數法等。