Μια LRU (Least Recently Used) cache αφαιρεί το στοιχείο που δεν έχει προσπελαστεί για το μεγαλύτερο χρονικό διάστημα όταν φτάσει τη χωρητικότητα. Το κλασικό σχέδιο συνδυάζει έναν hash map (O(1) lookup) με μια doubly linked list (O(1) αναταξινόμηση), δίνοντας O(1) get και put.
Το σχέδιο δύο δομών
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)
