LRU算法
往往在做内存管理的时候,我们使用LRU算法比较多,即Last Recently Used
,最近最少使用原则,
最早出现在Linux操作系统中。
具体的实现思路是使用哈希链表存储键值对,我们可以基于双向链表和HashMap自己实现一个LRU缓存算法。具体的代码如下:
package com.natsuki;
import java.util.HashMap;
/**
* @Author: xuzhiwei
* @Date: 2019-05-12
* @Description: 一个基于顺序HashMap的LRU算法实现
*/
public class LRUCache {
private Node head;
private Node end;
private int limit;
private HashMap<String, Node> hashMap;
public LRUCache(int limit) {
if (limit <= 0) {
throw new IllegalArgumentException("limit must > 0");
}
this.limit = limit;
hashMap = new HashMap<>();
}
public String get(String key) {
Node node = hashMap.get(key);
if (node == null) {