哈希表和鏈表概念區別:
鏈表是壹種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由壹系列結點(鏈表中每壹個元素稱為結點)組成,結點可以在運行時動態生成。
哈希表是根據關鍵碼值(Key Value)而直接進行訪問的數據結構。它通過把關鍵碼值映射到哈希表中的壹個位置來訪問記錄,以加快查找的速度。這個映射函數就做散列函數,存放記錄的數組叫做散列表。
特別註意:
每個結點包括兩個部分:
壹個是存儲數據元素的數據域;
另壹個是存儲下壹個結點地址的指針域。 相比於線性表順序結構,操作復雜。線性表的鏈式存儲表示,有壹個缺點就是要找壹個數,必須要從頭開始找起,十分麻煩。
散列存儲的基本思路:以數據中每個元素的關鍵字K為自變量,通過散列函數H(k)計算出函數值,以該函數值作為壹塊連續存儲空間的的單元地址,將該元素存儲到函數值對應的單元中。
Java壹般常用的集合體系: