保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

简单实现LRUCache

  前几天,录了一个实现LRUCache的视频,但是并没有说明为什么是这样设计的,所以本文将分享一下设计的思路。LRU的基本概念:
  LRU是LeastRecentlyUsed的缩写,最近最少使用算法。LRU的查询、添加、删除、修改的时间复杂度O(1):
  使用哈希表快速定位到对应的节点上,然后通过简单的指针变换进行元素的增删改查LRU的Java实现:哈希表双向链表
  1、定义双向链表Node节点classNode{intkey;intvalue;Nodeprev;Nodenext;publicNode(){}publicNode(intkey,intvalue){this。keykey;this。valuevalue;}OverridepublicStringtoString(){returnNode{keykey,valuevalue};}}
  2、定义LRUCache的相关属性当前LRUCache的数量privateintsize;LRUCache的容量privateintcapacity;双向链表的头结点privateNodehead;双向链表的尾结点privateNodetail;哈希表key:key,value:双向链表的节点privateMapInteger,NodecachenewHashMap();
  3、初始化LRUCachepublicLRUCache(intcapacity){this。capacitycapacity;this。size0;this。headnewNode();this。tailnewNode();this。head。nexttail;this。tail。prevhead;}
  4、定义几个常用的方法
  删除节点:privatevoidremoveNode(Nodenode){node。next。prevnode。prev;node。prev。nextnode。next;}
  将节点添加到头结点:privatevoidaddToHead(Nodenode){node。nexthead。next;head。next。prevnode;node。prevhead;head。nextnode;}
  将节点移动到头结点:privatevoidmoveToHead(Nodenode){removeNode(node);addToHead(node);}
  5、定义LRUCache的添加、修改和查询
  查询:publicintget(intkey){Nodenodecache。get(key);if(nodenull){return1;}moveToHead(node);returnnode。value;}
  添加和修改:publicvoidput(intkey,intvalue){Nodenodecache。get(key);if(nodenull){NodenewNodenewNode(key,value);cache。put(key,newNode);addToHead(newNode);size;if(sizecapacity){removeNode(tail。prev);size;}}else{node。valuevalue;moveToHead(node);}}
  6、打印LRUCachepublicvoidprint(){System。out。println();Nodecurhead。next;while(cur。next!null){System。out。println(prev:cur。prev,cur:cur,next:cur。next);curcur。next;}}
  7、测试publicstaticvoidmain(String〔〕args){LRUCachecachenewLRUCache(5);cache。put(1,10);cache。put(2,20);cache。put(3,30);cache。put(4,40);cache。put(5,50);cache。put(6,60);cache。print();System。out。println(cache。get(4));cache。print();cache。put(6,999);cache。print();}
  8、结果prev:Node{key0,value0},cur:Node{key6,value60},next:Node{key5,value50}prev:Node{key6,value60},cur:Node{key5,value50},next:Node{key4,value40}prev:Node{key5,value50},cur:Node{key4,value40},next:Node{key3,value30}prev:Node{key4,value40},cur:Node{key3,value30},next:Node{key2,value20}prev:Node{key3,value30},cur:Node{key2,value20},next:Node{key0,value0}40prev:Node{key0,value0},cur:Node{key4,value40},next:Node{key6,value60}prev:Node{key4,value40},cur:Node{key6,value60},next:Node{key5,value50}prev:Node{key6,value60},cur:Node{key5,value50},next:Node{key3,value30}prev:Node{key5,value50},cur:Node{key3,value30},next:Node{key2,value20}prev:Node{key3,value30},cur:Node{key2,value20},next:Node{key0,value0}prev:Node{key0,value0},cur:Node{key6,value999},next:Node{key4,value40}prev:Node{key6,value999},cur:Node{key4,value40},next:Node{key5,value50}prev:Node{key4,value40},cur:Node{key5,value50},next:Node{key3,value30}prev:Node{key5,value50},cur:Node{key3,value30},next:Node{key2,value20}prev:Node{key3,value30},cur:Node{key2,value20},next:Node{key0,value0}
  如果有什么问题,或者有什么错误,欢迎评论区提出,谢谢各位大大

灰烬余烟的哀叹品学网专稿未经允许不得转载人们常说,拥有与失去。其实拥有与失去是一对孪生子,他们犹如一个生物需要阳光空气一样。这对孪生子,整天形影不离,冲斥着生活的每个角落。繁忙的道路上……春游黄山作文400字春天来了,正是一个春游踏青的好季节,温暖的阳光,应该去哪里呢?听说安徽有一处著名的风景名胜,那就是黄山。黄山脚下还有一座荡漾着孩子们笑声的小山猴岛,就去这里吧。早晨,沿着……公司投屏电脑选择心理历程最近给公司选笔记本电脑,目标价位是40005000左右,不需独显,最好接口齐全,不需要带转接器。从i51240P看到i512500H,又看到R75800H,最后选了R75800……七年级写地震感人事迹作文【篇一:雅安地震作文】地震了,又一次给我们的家园带来了灾难。2013年4月20日8时2分,在四川省雅安市芦山县(北纬30。3度,东经103。0度)发生7。0级地震,……书境随想作文捧一杯清茶,折一枝白梅,倚在雕花木椅里,听窗外泠泠雨落下。翻开书的扉页,浓浓的书香便扑面而来。摒弃浮华的喧嚣,静心融入书境中徜徉。独坐幽篁,膝上放着一把古琴,檀木散发出阵……高三写人作文奶奶的爱(二)我的奶奶对我非常关心,我还没有生病,只是一点咳嗽,奶奶就紧张的要带我去医院检查,直到医生说我没事,她才算放心。我最近成绩不太稳定,奶奶总是提醒我,学习要认真,才能有更好的前途,……小狗汤姆的作文小狗汤姆是一位邻居家的小狗,它的毛是棕色的,黑黑的眼睛,嗅觉灵敏的鼻子。小狗特别爱吃肉,每一次我到邻居家来,都得带几块肉,我刚把一块肉扔给汤姆,还没有落地就咬住,一口咽了……小豆芽成长记400字10月13日星期日晴小豆子原本是小小的绿豆,外皮非常光滑,硬硬的像块小石头。但是经过浸泡后会怎样呢?快跟我来看看吧!浸泡过一天的豆子,变成了绿色中夹着白色的小ldq……任正非谁敢再提制造手机,谁就给我走!有人立马站起来反对谁敢再提制造手机,谁就给我走!任正非拍了拍桌子,喊道。大家都很害怕,整个办公室都鸦雀无声。这时,一位女性高管走上前说了几句话,成功地改变了任正非的想法,并额外投资了10亿美元。……换手机不如换手机壳,这届年轻人为啥不换机?来源:中国新闻网近日,包括中国信通院在内的多方数据显示,国内手机市场不振,出货量接连下滑,年轻人为什么不愿意换手机了还冲上微博热搜,引发讨论。这是因为啥?多款手机降价,销……牵手是爱放手也是爱作文600字父母似风,扫平一切阻碍;父母似雨,滋润我们的心田;父母似雪,冻结一切危险。但是,爱的方式并不唯一,牵手是爱,放手也是爱!小时候我总愿意牵着父母的手,总想一直感受着他们的爱……捕鸟?星期六,又一个星期六!时间啊,你跑那么快,把我逼向了死亡啊mdash;mdash;期末考。复习?别傻了,我是那种人吗?别侮辱我了,那多枯燥啊!唉!无聊啊,我能干什么?除了……
数科日报丨腾讯拟收购手机厂商黑鲨俞敏洪回应新东方辞退员工01丨腾讯拟收购小米系手机厂商黑鲨腾讯拟收购游戏手机公司黑鲨科技,收购后,黑鲨整体将并入任宇昕主导的腾讯集团平台与内容事业群(PCG)。一旦交易完成,这家以游戏手机为主的……介绍秦兵马俑的作文兵马俑,即秦始皇兵马俑,亦简称秦兵马俑或秦俑,第一批全国重点文物保护单位,第一批中国世界遗产,位于今陕西省西安市临潼区秦始皇陵以东1。5千米处的兵马俑坑内。以下是小编收集的关于……爱有摩尔质量吗高三作文世间的物质千千万,而组成物质的元素现已知道的不过百十种!然而每一种元素都有自己的摩尔质量,它体现了组成物质的元素在这个世界的份与量!每到这里,我都会问自己:世间的爱有摩尔质量吗……感受日全食失落今天嘛,7月22日。本世纪最为壮观的日全食在亚洲上演了,上海本应也是最佳观测点之一了啦,可是,天公呀,不作美。其实,在昨天,我就在电视上看到一些气象专家们预测今天上海可能……挫折的记叙文作文700字生活中每个人在遇到挫折时,面对它的做法和态度都各有不同。下面是小编为大家精心整理的关于挫折的记叙文作文700字,希望能够帮助到你们。挫折如果你十分珍爱自己的羽毛,不……观看护城河护城河,河长大约七公里,河宽大约二米,水深深不可测。今天我就来观赏护城河。当太阳从东方升起,护城河里的水总是那么平静。当阳光普照河水,河水就红丹丹的,仿佛那是一块红光发亮……自然景观优秀作文范文8篇【篇一:秋天的景象】秋天,果实累累,景色宜人,水果们穿起了美丽的衣服在开晚会呢!在秋天里,梨子、苹果、柿子你挤我碰都争着要别人去摘呢!田野里农民伯伯在聚精会神的收割稻谷,……致逝去的初中E度网专稿未经允许不得转载三年岁月年华,依旧怀念青春。你们做过摩天轮么?在夜晚时特别的美丽。很遗憾的是我只在白天享受过,就像遗憾那逝去的三年。三年记忆点点滴滴……作文我喜欢的动物小狗你喜欢什么动物呢?小狗你是否喜欢呢?以下是小编收集的关于《作文我喜欢的动物小狗》,仅供大家阅读参考!作文我喜欢的动物小狗你们知道吗?在大妈家里有一只可爱的小狗。它全身长着……三年级期末考试作文会飞的母鸡森林里有一只母鸡,它不像别的母鸡那样寻找食物或孵小鸡,它的理想是有朝一日能够飞上天空。它在森林里飞,在草地上飞,可是怎么样也飞不起来。其它的母鸡都嘲笑它:母鸡想飞?真是天……中秋节初三随笔作文8篇中秋节初三随笔作文1适逢中秋之夜,我仰望天空,望见一轮圆月,但不是我们常说的一轮皎洁的圆月,天空中有层层清云,如烟似雾,弥蒙在月光下。月晕恰恰是这圆月与清云的红娘,牵于二……感恩亲情作文600字亲情就在我们身边,等着我们去挖掘,让我们人人做一个有心人,去努力品味身边的亲情,丰富多姿多彩的人生。下面是小编为大家带来的感恩亲情作文600字,希望对大家有帮助!作文一:……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网