Package lazyj
Class LRUMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<K,V>
lazyj.LRUMap<K,V>
- Type Parameters:
K
- Key typeV
- Value type
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<K,
V>
A Map with restricted size and LRU behavior (when the size is reached the oldest unused entry is deleted to make some space for the new entry).
The implementation is based on LinkedHashMap, thus it is not thread safe. Remember
The implementation is based on LinkedHashMap, thus it is not thread safe. Remember
Collections.synchronizedMap(java.util.Map<K, V>)
.- Since:
- Oct 26, 2007 (1.0.2)
- Author:
- costing
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
getLimit()
Get the maximum number of elements that will be stored in the cacheprotected boolean
removeEldestEntry
(Map.Entry<K, V> eldest) Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, replaceAll, values
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
Constructor Details
-
LRUMap
public LRUMap(int iCacheSize) - Parameters:
iCacheSize
- How many entries can be in this map at maximum. A negative value means "unlimited" size.
-
LRUMap
public LRUMap(int iCacheSize, float fFactor) - Parameters:
iCacheSize
- How many entries can be in this map at maximum. A negative value means "unlimited" size.fFactor
- Fill factor for the underlying LinkedHashMap
-
-
Method Details
-
getLimit
public int getLimit()Get the maximum number of elements that will be stored in the cache- Returns:
- size limit
-
removeEldestEntry
- Overrides:
removeEldestEntry
in classLinkedHashMap<K,
V>
-