Un cache LRU (Least Recently Used) évince l'élément qui n'a pas été accédé depuis le plus longtemps lorsqu'il atteint sa capacité. La conception classique combine une table de hachage (O(1) lookup) avec une liste doublement chaînée (O(1) réorganisation), donnant O(1) get et put.
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)
