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:
java.io.Serializable
,java.lang.Cloneable
,java.util.Map<K,V>
public class LRUMap<K,V>
extends java.util.LinkedHashMap<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:
- Serialized Form
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description int
getLimit()
Get the maximum number of elements that will be stored in the cacheprotected boolean
removeEldestEntry(java.util.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
-
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
-