Package net.sf.saxon.expr.sort
Class LRUCache<K,V>
java.lang.Object
net.sf.saxon.expr.sort.LRUCache<K,V>
An LRU cache, based on
LinkedHashMap
.
Synthesized and simplified from various published examples of the genre.
The methods are not synchronized.-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
LRUCache
public LRUCache(int cacheSize) Creates a new LRU cache.- Parameters:
cacheSize
- the maximum number of entries that will be kept in this cache.
-
LRUCache
public LRUCache(int cacheSize, boolean concurrent) Creates a new LRU cache, with the option of making it thread-safe- Parameters:
cacheSize
- the maximum number of entries that will be kept in this cache.concurrent
- set to true if concurrent access is required, so that access will be synchronized
-
-
Method Details
-
get
Retrieves an entry from the cache.
The retrieved entry becomes the most recently used entry.- Parameters:
key
- the key whose associated value is to be returned.- Returns:
- the value associated to this key, or null if no value with this key exists in the cache.
-
put
Adds an entry to this cache. If the cache is full, the LRU (least recently used) entry is dropped.- Parameters:
key
- the key with which the specified value is to be associated.value
- a value to be associated with the specified key.
-
clear
public void clear()Clear the cache -
size
public int size()Get the number of entries in the cache- Returns:
- the number of entries
-