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
留言
張貼留言