- Попробовать реализовать в учебных целях простой cache, который реализует LRU стратегию
- Реализовать свой двусвязный список
- Попробовать следовать TDD
-
Двусвязный список
- свой класс DoubleLinkedList (Не LinkedList т.к. нужно будет удалять элемент из конца)
-
Хэш-таблица
- JS Map
-
Пусть размер кеша n
-
Пока число закешированных элементов (C) меньше n, добавляем элемент в начало кэша
-
Если С = n:
- Если элемент есть в кэше, переместить его в начало
- Если элемента нет в кэше, убрать последний и добавить его в начало
-
Сохранить в хеш-таблице актуальную информацию о номерах элементов
- number
- string
- Добавить возможность указывать timeout удаления элемента из кеша
- Добавить возможность использовать произвольные объекты как ключ и как значение