Një LRU (Least Recently Used) cache heq elementin që nuk është aksesuar për kohën më të gjatë kur arrin kapacitetin. Dizajni klasik kombinon një hash map (O(1) lookup) me një liste të dyfishtë të lidhur (O(1) rirendajen), duke dhënë O(1) get dhe put.
Dizajni me dy struktura
HashMap: key -> node DLL (recency order):
MRU <-> ... <-> LRU
get/put: map finds node move touched node to front (MRU)
in O(1); DLL splices it evict the tail (LRU) when full
to the front in O(1)
