Мне нужно реализовать кеш LRU со сроком действия 600 секунд на Java. Я поискал и нашел встроенный класс LinkedHashMap. Он может удалять самые старые элементы, когда размер превышает предел, но у него нет срока действия для элементов.
Что я могу придумать, так это связать метку времени при помещении элемента в кеш. При получении элемента проверьте его отметку времени; если метка времени старше 600 с, то удаляет элемент из кеша и возвращает «не найден».
Есть идеи получше? Какие-нибудь встроенные решения или лучшие практики? Я бы не хотел изобретать велосипед заново.