В моем подходе необходимо иметь хеш-таблицу для быстрого поиска сохраненных объектов и связанный список для поддержания последовательности последнего использования.
Когда объект запрашивается.
1) попробуйте найти объект из хеш-таблицы
2.yes) если найдено (значение имеет указатель на объект в связанном списке), переместите объект в связанном списке в верхнюю часть связанного списка.
2.no) если нет, удалите последний объект из связанного списка и удалите данные также из хеш-таблицы, затем поместите объект в хеш-таблицу и верхнюю часть связанного списка.
Например
Допустим, у нас есть кэш-память только на 3 объекта.
Последовательность запроса: 1 3 2 1 4.
1) Хеш-таблица: [1]
Связанный список: [1]
2) Хеш-таблица: [1, 3]
Связанный список: [3, 1]
3) Хеш-таблица: [1,2,3]
Связанный список: [2,3,1]
4) Хеш-таблица: [1,2,3]
Связанный список: [1,2,3]
5) Хеш-таблица: [1,2,4]
Связанный список: [4,1,2] => 3 из