package practice;
import java.util.HashMap;
import java.util.Map;
/**
* 链表头,链表尾,map,size
* 构造方法:初始化size,构建map,头尾赋空,头尾相连
* get: 判断是否包含key -> 得到key的Node -> 删除node -> 把Node添加到头部 -> 返回node.v
* put: 判断是否存在key -> 存在,删除 -> 初始化新节点,put到map中,头插 -> 长度超出,移除尾节点
*/
public class LRUTest<K, V> {
Node head;
Node tail;
Map<K, Node> map;
int maxSize;
private class Node {
Node pre;
Node next;
K k;
V v;
public Node(K k, V v) {
this.k = k;
this.v = v;
}
}
public LRUTest(int maxSize) {
this.maxSize = maxSize;
map = new HashMap<>(maxSize * 4 / 3);
head = new Node(null, null);
tail = new Node(null, null);
head.next = tail;
tail.pre = head;
}
public V get(K k) {
if (!map.containsKey(k)) {
return n
LRU缓存实现(Java)
最新推荐文章于 2024-04-20 21:50:09 发布