集合中的老化对象

时间:2012-10-18 20:10:58

标签: java collections queue priority-queue cache-expiration

我希望能够在Collection中对对象进行老化。

例如,我可以将字符串放在HashSet中。

  1. 我想将字符串放入HashSet时的时间戳关联起来。
  2. 我希望字符串比从HashSet中删除时间X更早。
  3. 我希望能够说“触摸”一个字符串并更新它在集合中插入的时间。
  4. 所以我可以通过跟踪每个字符串然后运行清理线程并从集合中清除字符串(如果它早于特定时间量)来实现此目的。

    但我正在寻找:

    1. 这是一种聪明的方法。
    2. 完成此任务的现有开源java组件。
    3. 感谢。

4 个答案:

答案 0 :(得分:8)

听起来你需要一个缓存。从番石榴或CacheBuilder尝试Caches Explained(参见EhCache)。

答案 1 :(得分:4)

Google Guava缓存满足您的所有要求甚至更多!请参阅Caches Explained

答案 2 :(得分:1)

我会使用JCS,非常喜欢番石榴的想法,但是@sjr

答案 3 :(得分:1)

为什么不创建一个由HashMap<String, Date>支持的自己的Collection类(用于房屋清洁任务)?