Fixed sized map in Java and LRU map
A fixed size ordered hash map that gets purged automatically on key insertions:
import java.util.LinkedHashMap;
import java.util.Map;
public class FixedMap<K,V> extends LinkedHashMap<K,V> {
private int max_capacity;
public FixedMap(int initial_capacity, int max_capacity) {
super(initial_capacity, 0.75f, false);
this.max_capacity = max_capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
return size() > this.max_capacity;
}
}
A map that automatically removes least recently used keys (great for implementing LRU caches): import java.util.LinkedHashMap;
import java.util.Map;
public class LRUMap<K,V> extends LinkedHashMap<K,V> {
private int max_cap;
public LRUMap(int initial_cap, int max_cap) {
super(initial_cap, 0.75f, true);
this.max_cap = max_cap;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
return size() > this.max_cap;
}
}
|
|