解决什么问题为了提高效率,很多数据是可以放在内存中的,但是内存空间是有限的,假如数据满了,再添加数据,应该清除哪些数据了 。LRU就是一种清除数据的策略,LRU是Least Recently Used的缩写,即最近最少使用的数据可以清除
数据结构我们使用HashMap来存放数据,再使用双向链表来维护最近最少使用的顺序,双向链表从头到尾依次最近最少使用的到最近最多使用的

文章插图
上图中,依次加入A,B,C这时候访问一下A,则把A放在链表的尾部

文章插图
如果空间只够存储3个元素,这时候要加D了,就需要头部的B弹出,把D放在尾部 。
【Least Recently Used 算法--LRU】所以,每次访问的元素或者添加的元素就放在队尾,也就是最近最常用的元素,那么放在头部的就是最近最少使用的元素 。
代码JAVA中的LinkedHashMap其实就是这样一个结构,Map中这几个方法没有实现,LinkedHashMap实现了 。

文章插图
可以使用HashMap和链表来实现,下面的代码是链表中的几个关键步骤:
定义数据结构(节点,双向链表,一个头,一个尾):

文章插图

文章插图
添加节点操作

文章插图
容量满了删除最近最少使用的

文章插图
每次访问都把元素放在尾部

文章插图
推荐阅读
-
小懒猫yen|400年经久不衰,12代的孙子都是有钱人,河南这样的一个家族
-
「健康界媒体」孕期高血压,竟会增加子女患多动症/自闭症等精神疾病风险?
-
电玩书艺三国杀:盘点最具战力的曹氏武将?曹操之子曹冲人小战力强
-
嘉定区委组织部|嘉定区安亭镇:“党建联盟”打造一体化合作新路径
-
乡村小剧情|再搭一件知性的一字肩短衫,轻松秀出时尚美感,夏季巧搭牛仔裤
-
-
「12星座君」总能激起别人保护欲的三大星座女,又萌又可爱
-
生肖兔和生肖龙的婚姻相配吗-,属龙的和属兔的在一起般配吗--
-
-
中国新闻网|郑州公布新增2例无症状感染者详情 系菲律宾同机入境
-
美容护肤知识|女生精华液排行榜前10强测评,哪个品牌的精华液好用
-
安卓平板|平板体验从此被改写!华为首款HarmonyOS 3旗舰平板发布
-
呼声|美频繁秀肌肉却后勤吃紧,军费削减呼声高,杜文龙:减什么很关键
-
不正经的泡芙|这样既能显瘦,又能凸显小姐姐青春活泼的性格,满满的少女感
-
职业教育|上职业学校就是将就,已经成为历史,选择职业学校,也要擦亮眼睛
-
「美食美刻」教你3招,炒出口感滑嫩入味的鸡肉,学会你也是大厨水平
-
虎扑|国米要为3天1赛做好准备,卢卡库:余下12场联赛都是决赛
-
贝塔看比赛啦|王思聪发话了!没有提到JKL,而是点名批评了Karsa,IG击败TES后
-
-