Java Hashtable, HashMap - The first sight

Implement LRU cache in JAVA

Hashtable 是實作map的方式之一,基本操作就是put和get某個value by key from map table.

HashMap實例中有兩個影響效能的參數,initial capacity和load factor。簡單的說,設定capacity創始大小若使用率高於臨界值,則會擴大一倍capacity for接下來新的key put,擴大一倍這動作稱為Table doubling。
Threshold = initial capacity * load factor

因為擴大會影響效能,因此最佳化前可以先稍微計算大多落在多少個entry,並加些緩衝空間。
LinkedHashMap  是用linked list 跟hash table去實作map, 具有迭代的順序性。

跟上回提到的hashmap不同點就是有雙向連結所有entry, 並且會有順序性,從最少到最常被access的順序。

因此才被常來實作LRUCache (in Java), python則可以借用OrderedDict來實作。


Hashtable 繼承Dictionary, sychronize, key and value不運許空值
HashMap 繼承AbstractMap, default non-synchronize

都實現Map interface



Appendix

留言

這個網誌中的熱門文章

[專案] 銀行端末系統

如何在MacOS 中自由切換不同Python版本 - pyenv + virtualenv

用 C# 控制 Win7 輸入法