免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      LRU簡(jiǎn)單實(shí)現(xiàn)

      介紹

      LRU是Least Recently Used的縮寫,即最近最少使用,是一種常用頁面置換算法,選擇最近最久未使用的頁面予以淘汰。

      編碼實(shí)現(xiàn)(高手繞行)

      了解LRU的應(yīng)該都其低層實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)主要是是Map和鏈表,如下:

      package com.zte.sdn.oscp.xls.read;import lombok.Data;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class LRU {/**LRU存在數(shù)據(jù)容量**/ private int capacity = 5; /**主要用以快速判斷是否存在數(shù)據(jù)**/ private Map nodeMap = new ConcurrentHashMap(); private Node tail; private Node head; public LRU() { tail = new Node(); head = new Node(); tail.pre = head; head.nex = tail; tail.nex = null; head.pre = null; } public String getValue(String key) { String result = null; if (nodeMap.containsKey(key)) { Node node = nodeMap.get(key); result = node.value; //刷新位置(移動(dòng)到頭) removeNode(node); addHead(node); } return result; } public void putValue(String key, String value) { if (nodeMap.containsKey(key)) { Node node = nodeMap.get(key); node.setValue(value); //刷新位置(移動(dòng)到頭) removeNode(node); addHead(node); } else { Node node = new Node(); node.setValue(value); if (nodeMap.size() < capacity) { addHead(node); } else { removeNode(tail.pre); addHead(node); } nodeMap.put(key,node); } } private void addHead(Node node) { node.nex = head.nex; node.nex.pre = node; head.nex = node; node.pre = head; } private void removeNode(Node node) { node.pre.nex = node.nex; node.nex.pre = node.pre; } @Override public String toString() { StringBuffer output = new StringBuffer(); Node node = head.nex; while (node != null && node.nex != null) { output.append(node.value).append(","); node = node.nex; } return output.toString(); } @Data class Node { private String value; private Node pre; private Node nex; } public static void main(String[] args) { LRU lru = new LRU(); lru.putValue("1", "1"); lru.putValue("2", "2"); lru.putValue("3", "3"); lru.putValue("4", "4"); System.out.println("4:" + lru); lru.putValue("5", "5"); System.out.println("5:" + lru); lru.putValue("6", "6"); System.out.println("6:" + lru); lru.putValue("4", "44"); System.out.println("7:" + lru); String value = lru.getValue("2"); System.out.println("8:" + lru); }}

      LinkedHashMap實(shí)現(xiàn)

      JDK中提供了LinkedHashMap數(shù)據(jù)結(jié)構(gòu),LinkedHashMap底層就是用的HashMap加雙向鏈表實(shí)現(xiàn)的,而且本身已經(jīng)實(shí)現(xiàn)了按照訪問順序的存儲(chǔ)。此外,LinkedHashMap中本身就實(shí)現(xiàn)了一個(gè)方法removeEldestEntry用于判斷是否需要移除最不常讀取的數(shù),方法默認(rèn)是直接返回false,不會(huì)移除元素,所以需要重寫該方法。即當(dāng)緩存滿后就移除最不常用的數(shù)

      public class LRU { private static final float hashLoadFactory = 0.75f; private LinkedHashMap map; private int cacheSize; public LRU(int cacheSize) { this.cacheSize = cacheSize; int capacity = (int)Math.ceil(cacheSize / hashLoadFactory) + 1; map = new LinkedHashMap(capacity, hashLoadFactory, true){ private static final long serialVersionUID = 1; @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > LRU.this.cacheSize; } }; } public synchronized V get(K key) { return map.get(key); } public synchronized void put(K key, V value) { map.put(key, value); } public synchronized void clear() { map.clear(); } public synchronized int usedSize() { return map.size(); } public void print() { for (Map.Entry entry : map.entrySet()) { System.out.print(entry.getValue() + “–“); } System.out.println(); }}

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月13日 15:19
      下一篇 2022年6月13日 15:19

      相關(guān)推薦

      • 《光遇》11月25日紅石在哪里 11.25紅石位置

        光遇11月25日的紅石出現(xiàn)在霞谷圓夢(mèng)村,許多小伙伴都還不知道它具體在哪,下面就讓小編來給大家介紹一下光遇11.25紅石的位置,感興趣的小伙伴快來看看吧。 光遇11.25紅石位置 1…

        2022年11月25日
      • 《光遇》11月25日季節(jié)蠟燭在哪 11.25季節(jié)蠟燭位置2022

        光遇季節(jié)蠟燭的位置每天都會(huì)變化,今天出現(xiàn)在了雨林地區(qū),下面小編就給大家?guī)砹斯庥?1.25季節(jié)蠟燭位置分享,有需要的小伙伴不要錯(cuò)過哦。 光遇11.25季節(jié)蠟燭位置2022 今日季節(jié)…

        2022年11月25日
      • 拼多多百億補(bǔ)貼預(yù)售一般多久發(fā)貨(拼多多百億補(bǔ)貼預(yù)售)

        拼多多里面有很多優(yōu)惠活動(dòng),其中百億補(bǔ)貼活動(dòng)非?;鸨恍├锩娴臇|西價(jià)格比別的平臺(tái)便宜,質(zhì)量也有保障,還有預(yù)售的活動(dòng),那么拼多多百億補(bǔ)貼預(yù)售一般多久發(fā)貨?下面小編為大家?guī)砥炊喽喟賰|…

        2022年11月25日
      • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

        CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊(cè),可以是激活,可以是搜索下載激活,可以是綁卡,實(shí)名認(rèn)證,可以是付費(fèi),可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

        2022年11月25日
      • 百度關(guān)鍵詞快速排名的4大原理解析(百度怎么刷關(guān)鍵詞)

        近期百度公告驚雷算法2.0,升級(jí)之快還是第一次吧,看來百度對(duì)于刷點(diǎn)擊行為是零容忍了。之前尹華峰SEO技術(shù)博客介紹過一篇如何使用刷點(diǎn)擊工具,其實(shí)市面上有很多這類SEO快速排名的軟件,…

        2022年11月25日
      • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點(diǎn))

        如今抖音這個(gè)短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺(tái)上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個(gè)人都能做好的,那么在…

        2022年11月24日
      • 《寶可夢(mèng)朱紫》樁子是什么?二級(jí)神封印樁位置一覽

        寶可夢(mèng)朱紫中有一種叫做二級(jí)神封印樁的特殊收集道具,很多玩家不知道寶可夢(mèng)朱紫樁子是什么,下面就帶來寶可夢(mèng)朱紫二級(jí)神封印樁位置一覽,感興趣的小伙伴不要錯(cuò)過,希望能幫助到大家。 二級(jí)神封…

        2022年11月24日
      • 《寶可夢(mèng)朱紫》太晶水地龍捕捉位置一覽 太晶水地龍?jiān)谀睦锊蹲?

        近日在貼吧看到有許多玩家在寶可夢(mèng)朱紫中遇到了《寶可夢(mèng)朱紫》太晶水地龍捕捉位置一覽的問題,又不知道該怎么辦。今天在這里,小編為大家?guī)淼木褪沁@個(gè)問題的解方案,只要你跟著小編的節(jié)奏來,…

        2022年11月24日
      • Steam秋季特賣開啟 為Steam大獎(jiǎng)提名游戲

        Steam秋季特賣開啟 為Steam大獎(jiǎng)提名游戲 Steam秋季特賣活動(dòng)現(xiàn)已正式開啟,時(shí)間從11月23日持續(xù)到11月30日(北京時(shí)間),新老游戲均有不錯(cuò)的折扣,感興趣的玩家可以前往…

        2022年11月24日
      • 明查|美國(guó)新冠后遺癥患者中有16%癥狀嚴(yán)重以致無法工作?

        點(diǎn)擊進(jìn)入澎湃新聞全球事實(shí)核查平臺(tái) 速覽 – 網(wǎng)傳數(shù)據(jù)比例無權(quán)威信源佐證,該比例有可能是結(jié)合了美國(guó)疾病防控中心和布魯金斯學(xué)會(huì)的數(shù)據(jù)得出,但這兩個(gè)機(jī)構(gòu)的調(diào)研目的和樣本都不同…

        2022年11月24日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息