天天看點

LRU 緩存程式設計實作

感覺這個話題,包括代碼已經爛大街了。不過寫這個還是需要對HashMap系和連結清單的基礎很了解的,最近重新練了練手,附上代碼和注釋吧。

整體可以了解為是連結清單的結構-根據通路順序調整節點節點的位置,但存儲的時候是K_V的形式存儲-添加查詢删除的時候首先連結清單操作

然後在HashMap中添加查詢删除-總體結構和LindedHashMap類似,異曲同工,但具體的差別還待繼續學習研究, 不過一般都用的是LinkedHashMap。了解的大神可以留言,指教

Cache的連結清單+HashMap實作:

import java.util.HashMap;
/**
 * 整體可以了解為是連結清單的結構-根據通路順序調整節點節點的位置,但存儲的時候是K_V的形式存儲-添加查詢删除的時候首先連結清單操作
 * 然後在HashMap中添加查詢删除-總體結構和LindedHashMap類似,異曲同工,但具體的差別還待繼續學習研究,
 * 不過一般都用的是LinkedHashMap
 */
public class Lru<K,V> {                                     //節點是hashMap的連結清單
    class Entry<K,V>{                                       //連結清單Entry節點結構
        public K Key;