En LRU (Least Recently Used) cache fjerner elementet som ikke har blitt tilgjengd på lengst tid når den når kapasiteten. Det klassiske designet kombinerer en hash map (O(1) oppslag) med en dobbeltlenket liste (O(1) omordning), noe som gir O(1) get og put.
Designet med to strukturer
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)
