筆記-哈希 相關知識點
05-15
- 哈希(散列)就是將不定長的輸入,經過散列演算法運算,輸出位定長數據,結果可能會相同,但是幾率很小
- 哈希表是一個表結構,put(key,val),get(key)
- put是將key的哈希值作為key,與val存入哈希表內。先判斷表中key是否存在,存在則在判斷key是否一致,一致就update,不一致則put;若表中key不存在,則直接put
- get是將key的哈希值在哈希表中進行查找,並返回key對應的val
HashMap 存儲鍵值對,沒有什麼特殊的功能;
LinkedHashMap在存儲的同時,能夠保存用戶插入數據的順序,如果需要輸出用戶插入map的順序可以用它;
TreeMap 插入數據後,對鍵值進行排序,內部是通過紅黑樹實現的;
HashTable 與HashMap的功能相同,區別僅僅是HashTable是線程安全的,即某一時刻只允許一個線程訪問,同時鍵值允許為空;
如果HashTable想要允許多線程訪問,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。
哈希表在其中數據佔據了0.75%後向後擴充,並重新排列數據所在的位置。普通hashMap中沒有加synchronized所以在多線程的情況下會導致程序異常或卡死
.
淺談Java中的hashcode方法 - 海 子 - 博客園如何正確的重寫equals() 和 hashCode()方法 - CSDN博客
推薦閱讀:
※《一生的讀書計劃》
※機器學習筆記(一) KNN K-最近鄰
※思維導圖筆記的活用和與傳統線性筆記的比較
※毛中特·第一章-馬克思主義中國化
TAG:筆記 |