package com.googlecode.aviator.utils;
import java.util.LinkedHashMap;
/**
* LRU map based on LinkedHashMap
*
* @author apple
*
* @param <K>
* @param <V>
*/
public class LRUMap<K, V> extends LinkedHashMap<K, V> {
static final long serialVersionUID = -1L;
private int maxCapacity;
public LRUMap(int maxCapacity) {
super(16, 0.75f, true);
this.maxCapacity = maxCapacity;
}
public V remove(Object key) {
return super.remove(key);
}
public int size() {
return super.size();
}
public V put(K k, V v) {
return super.put(k, v);
}
public V get(Object k) {
return super.get(k);
}
@Override
protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) {
return this.size() > this.maxCapacity;
}
}