Java - 快速手撕 LRU 算法2022-06-07 231 版权 简介: Java - 快速手撕 LRU 算法 importjava.util.LinkedHashMap; importjava.util.Map; /*** @author Lux Sun* @date 2021/4/27*/publicclassLruCache<K, V>extendsLinkedHashMap<K, V> { priv
还有一个boolean removeEldestEntry;(Map.Entry eldest)方法,用来判断什么时候移除链表的起始元素; 通过这两个特性即可实现LRU,但是我建议不要只会这一种,否则我们就是api调用程序员了; 实现代码 代码环境为JDK1.8 双向链表和HashMap class LRUCache { // 定义一个双向链表 static class Node { Integer key; Intege...
LRUCache cache=newLRUCache(2/* 缓存容量 */);cache.put(1,1);cache.put(2,2);cache.get(1);// 返回 1cache.put(3,3);// 该操作会使得关键字 2 作废cache.get(2);// 返回 -1 (未找到)cache.put(4,4);// 该操作会使得关键字 1 作废cache.get(1);// 返回 -1 (未找到)cache.get(3...