package com.algocrafts.objectcache;
import com.algocrafts.algorithm.SortedCounter;
public class OneKeyLFUPolicy<K> implements OneKeyCachePolicy<K> {
private final SortedCounter<K> sortedCounter = new SortedCounter<>();
@Override
public K evictingKey(boolean cacheIsFull, K key) {
K LFU = null;
if (cacheIsFull && !sortedCounter.containsKey(key)) {
LFU = sortedCounter.removeFirst();
}
sortedCounter.count(key);
return LFU;
}
}