Egy LRU (Least Recently Used) cache eltávolítja azt az elemet, amelyre a leghosszabb ideje nem fértek hozzá, amikor elérte a kapacitását. A klasszikus tervezés egy hash map (O(1) lookup) és egy kétirányú összekapcsolt lista (O(1) átrendezés) kombinációja, amely O(1) get és put teljesítményt nyújt.
The two-structure design
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)
