利用LinkedHashMap实现一个简单的LUR(Least Recently Used 近期最少使用算法)的cache的两种方法
在做LeetCode题目的时候遇到的这个算法,简单的学习了下
LinkedHashMap的特性:
Linked内部含有一个private transient Entry header;
来记录元素插入的顺序或者是元素被访问的顺序。利用这个线性结构的对象,可以帮助记录entry加入的前后顺序或者记录entry被访问的 频率(最少被访问的entry靠前,最近访问的entry靠后)。
1.按照entry加入前后的顺序实现
自己来控制何时删除最少被访问的那个entry
import java.util.*;
public class <K,V> LRUCache<K,V> {
private LinkedHashMap<K,V> cache;
private int capacity;
public LRUCache(int capacity) {
th