Package lazyj

Class LRUMap<K,V>

Type Parameters:
K - Key type
V - Value type
All Implemented Interfaces:
Serializable, Cloneable, Map<K,V>

public class LRUMap<K,V> extends 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 Collections.synchronizedMap(java.util.Map<K, V>).
Since:
Oct 26, 2007 (1.0.2)
Author:
costing
See Also:
  • 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

      protected boolean removeEldestEntry(Map.Entry<K,V> eldest)
      Overrides:
      removeEldestEntry in class LinkedHashMap<K,V>