我希望能够对集合中的对象进行老化。
例如,我可以将字符串放入 HashSet。
- 我想要将字符串放入 HashSet 时关联的时间戳。
- 我希望从 HashSet 中删除比时间 X 更早的字符串。
- 我希望能够说“触摸”一个字符串并将时间更新到它被插入到集合中的时间。
因此,我可以通过跟踪每个字符串来完成此操作,然后运行清理线程并从集合中清除字符串(如果它超过某个时间段)。
但是我正在寻找:
- 要么是一种聪明的方式来做到这一点。
- 一个现有的开源 Java 组件可以完成此任务。
谢谢。
我希望能够对集合中的对象进行老化。
例如,我可以将字符串放入 HashSet。
因此,我可以通过跟踪每个字符串来完成此操作,然后运行清理线程并从集合中清除字符串(如果它超过某个时间段)。
但是我正在寻找:
谢谢。
听起来你需要一个缓存。从 Guava 或EhCache尝试CacheBuilder
(参见Caches Explained ) 。
Google Guava缓存可以满足您的所有要求以及更多!请参阅缓存解释。
我会使用JCS,虽然@sjr 真的很喜欢 Guava 的想法
为什么不创建由 a 支持的您自己的 Collection 类(用于房屋清洁任务)HashMap<String, Date>
?