Необходимо реализовать класс TimeLimitedCache
, позволяющий хранить значения в формате ключ-значения. При этом для каждого ключа устанавливается время жизни — через такое время (в миллисекундах) установки значения ключа он пропадает из кэша.
У класса должно быть реализовано 3 метода:
set(key, value, duration)
— принимает ключ, значение и время жизни ключа. Если на момент установки значения по ключу такой ключ уже был, то метод возвращает true
, иначе false
. В обоих случая устанавливается новое значение.
get(key)
— если в кэше есть такой ключ возвращает его значение, если нет — число -1
.
count()
— возвращает количество ключей в кэше на момент вызова.
const cache = new TimeLimitedCache(); setTimeout(() => console.log(cache.set(1, 500, 450)), 0); // false setTimeout(() => console.log(cache.get(1)), 100); // 500 setTimeout(() => console.log(cache.set(2, 600, 350)), 200); // false setTimeout(() => console.log(cache.get(2)), 300); // 600 setTimeout(() => console.log(cache.count()), 400); // 2 setTimeout(() => console.log(cache.set(2, 800, 250)), 500); // true setTimeout(() => console.log(cache.count()), 600); // 1 setTimeout(() => console.log(cache.get(2)), 700); // 800