摘要:在字典中,存儲的是鍵,值,集合可以看作值,值的形式存儲元素,字典也稱為映射方法描述備注向字典中添加新元素通過某個鍵值從字典中移除對應的數據值判斷某個鍵值是存在于這個字典中通過鍵值獲取對應的數據值返回字典所有元素的數量刪除字典中所有元素將字典
在字典中,存儲的是[鍵,值],集合可以看作[值,值]的形式存儲元素,字典也稱為映射
方法 | 描述 | 備注 |
---|---|---|
set(key, value) | 向字典中添加新元素 | |
delete(key) | 通過某個鍵值從字典中移除對應的數據值 | |
has(key) | 判斷某個鍵值是存在于這個字典中 | |
get(key) | 通過鍵值獲取對應的數據值 | |
size() | 返回字典所有元素的數量 | |
clear() | 刪除字典中所有元素 | |
keys() | 將字典包含的所有鍵名以數組形式返回 | |
values() | 將字典包含的所有數值以數組形式返回 |
散列表(hashtable)
散列算法的作用是盡可能快的在數據結構中找到一個值
散列函數的作用是給定一個鍵值,返回該值在表中的位置
最常見的散列函數“lose lose”
將每個鍵值中的每個字母的ascii值相加,然后將結果作為值在hashtable中的索引,查找的時候通過所以查找,復雜度為O(1)
此方法會在計算ascii值和時出現沖突,解決沖突的方法:分離鏈接,線性查探,雙散列法
分離鏈接
在散列表的每個位置創建一個鏈表并將元素儲存在里面,獲取的時候,遍歷當前位置上的鏈表,并比對key值,進行獲取
線行探查
項表中某個位置增加新元素時,若索引為index的位置已經占了,就嘗試index+1,以此類推
散列函數的性能由幾個方面構成:插入和檢索元素的時間,較低的沖突可能性
“djb2”散列函數
var djb2HashCode = function (key) { var hash = 5381;// 初始化一個hash值并賦值為一個質數(目前大多數都是用5381) for (var i = 0; i < key.length; i++) { hash = hash * 33 + key.charCodeAt(i); } return hash % 1013 }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108864.html
摘要:我經常在業務代碼中把數據處理成這種字典的數據結構獲取的方法哈希表在學習了類之后,我們會學習散列表,也就是哈希表。 《Javascript數據結構和算法》筆記-「字典和散列表」 集合、字典、散列表存儲的都是「不重復」的數據結構 集合:我們更關注每一個元素的值,并把其作為主要元素 字典:我們用[鍵,值]的形式來存儲數據 散列表: 跟字典類似,也會是用[鍵,值]的形式來存儲數據 但是「字...
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
摘要:筆者作為一位,將工作以來用到的各種優秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數組的極值技巧使你的更加專業前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續更新… 一、...
閱讀 2445·2021-10-13 09:40
閱讀 3334·2019-08-30 13:46
閱讀 1119·2019-08-29 14:05
閱讀 2952·2019-08-29 12:48
閱讀 3654·2019-08-26 13:28
閱讀 2142·2019-08-26 11:34
閱讀 2277·2019-08-23 18:11
閱讀 1156·2019-08-23 12:26