Старение объектов в коллекции
Я хочу, чтобы можно было состаривать объекты в коллекции.
Например, я мог бы поместить строки в HashSet.
- Я хотел бы, чтобы временные метки ассоциировались с тем, когда строка была помещена в HashSet.
- Я хотел бы, чтобы String старше, чем, скажем, время X, был удален из HashSet.
- Я хотел бы иметь возможность сказать "коснуться" строки и обновить время, когда она была вставлена в коллекцию.
Так что я могу сделать это, отслеживая каждую строку, а затем запуская нить очистки дома и удаляя строку из коллекции, если она старше определенного кванта времени.
Однако я ищу:
- Либо Умный способ сделать это.
- Существующий Java-компонент с открытым исходным кодом, который выполняет это.
Благодарю.
4 ответа
Решение
Похоже, вам нужен кеш. Либо попробуй CacheBuilder
(см. Объяснение кешей) из Guava или EhCache.
Кэши Google Guava отвечают всем вашим требованиям и не только! Смотрите объяснения кешей.
Почему бы просто не создать свой собственный класс Collection (для задач по уборке дома), который поддерживается HashMap<String, Date>
?
Я хотел бы использовать JCS, очень нравится идея Guava, хотя @sjr