Class LRUCache<K,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.HashMap<K,V>
-
- java.util.LinkedHashMap<K,V>
-
- com.ibm.fhir.persistence.jdbc.cache.LRUCache<K,V>
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<K,V>
public class LRUCache<K,V> extends LinkedHashMap<K,V>
An LRU implementation which limits the maximum number of entries and ejects older entries. Null values are not permitted in this implementation.- See Also:
- Serialized Form
-
-
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 Constructor Description LRUCache(int maxSize)
Public constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LinkedHashMap<K,V>
newUpdateMap()
Create a new instance of a LinkedHashMap which can be used for collecting updates to apply to the cache.protected boolean
removeEldestEntry(Map.Entry<K,V> eldest)
void
update(LinkedHashMap<K,V> updates)
Update this LRU with the updates in the given LinkedHashMap, which we use because we apply the updates in a specific order (as defined by the entrySet of the updates parameter).void
update(List<K> updates)
Update the LRU by processing each of the keys in the updates parameter-
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 interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
-
-
-
Method Detail
-
removeEldestEntry
protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
- Overrides:
removeEldestEntry
in classLinkedHashMap<K,V>
-
update
public void update(LinkedHashMap<K,V> updates)
Update this LRU with the updates in the given LinkedHashMap, which we use because we apply the updates in a specific order (as defined by the entrySet of the updates parameter).- Parameters:
updates
-
-
update
public void update(List<K> updates)
Update the LRU by processing each of the keys in the updates parameter- Parameters:
updates
-
-
newUpdateMap
public LinkedHashMap<K,V> newUpdateMap()
Create a new instance of a LinkedHashMap which can be used for collecting updates to apply to the cache.- Returns:
- a new empty instance of a
LinkedHashMap
-
-