LRU Java两种简单实现
LRU即Least Recently Used ,最近最少使用的缓存替换规则,此缓存策略关注于程序访问存储介质两个性质之一:时间局部性,最近访问到的内容,接下来大概率会继续访问到。LRU的实现不难,且在java中还有现成的代码可以使用以及学习。下面给出两种LRU的实现:
1.持有或继承LinkedHashMap
LinkedHashMap在HashMap平均O(1)的访问基础上,存储的节点额外增加了前后指向关系:
static class Entry<K,V> extends HashMap.Node<K,V> {
Entry<K,V> before, after;
Entry(int hash, K key, V value, Node<K,V> next) {
super(hash, key