LRU (Least Recently Used) -välimuisti poistaa kohteen, johon ei ole käyty käsiksi pisimpään aikaan, kun se saavuttaa kapasiteetin. Klassinen suunnittelu yhdistää hash-kartan (O(1) haku) ja kaksoisinkilistan (O(1) uudelleenjärjestys), mikä antaa O(1) get ja put.
Kahden rakenteen suunnittelu
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)
