at.tuwien.ifs.somtoolbox.util
Class LeastRecentlyUsedCache<K,V>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<K,V>
          extended by java.util.LinkedHashMap<K,V>
              extended by at.tuwien.ifs.somtoolbox.util.LeastRecentlyUsedCache<K,V>
All Implemented Interfaces:
Serializable, Cloneable, Map<K,V>

public class LeastRecentlyUsedCache<K,V>
extends LinkedHashMap<K,V>

A least-recently-used LRU cache, based on LinkedHashMap. This cache can hold a fixed maximum number of elements; if a new element is added, and the cache is full, the least recently used entry is removed.

Version:
$Id: LeastRecentlyUsedCache.java 3587 2010-05-21 10:35:33Z mayer $
Author:
Rudolf Mayer
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Field Summary
private  int cacheSize
           
private static long serialVersionUID
           
 
Constructor Summary
LeastRecentlyUsedCache(int size)
          Creates a new least-recently-used cache.
 
Method Summary
protected  boolean removeEldestEntry(Map.Entry<K,V> eldest)
           
 
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, get
 
Methods inherited from class java.util.HashMap
clone, containsKey, entrySet, isEmpty, keySet, put, putAll, remove, size, values
 
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
containsKey, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

cacheSize

private int cacheSize
Constructor Detail

LeastRecentlyUsedCache

public LeastRecentlyUsedCache(int size)
Creates a new least-recently-used cache.

Parameters:
size - the maximum number of entries that will be kept in this cache.
Method Detail

removeEldestEntry

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