En LRU (Least Recently Used) cache kastar ut elementet som inte har använts på längst tid när den når sin kapacitet. Den klassiska designen kombinerar en hash map (O(1) lookup) med en dubbelriktad länkad lista (O(1) omordning), vilket ger O(1) get och put.
Designen med två 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)
