【问题标题】:Aging Objects in a Collection [closed]集合中的老化对象[关闭]
【发布时间】:2012-10-09 09:36:01
【问题描述】:

我希望能够对集合中的对象进行老化。

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

  1. 我想要将字符串放入 HashSet 时的相关时间戳。
  2. 我希望从 HashSet 中删除早于时间 X 的字符串。
  3. 我希望能够说“触摸”一个字符串并将时间更新为它被插入到集合中的时间。

所以我可以通过跟踪每个字符串来完成此操作,然后运行一个房屋清理线程并从集合中清除字符串(如果它比某个时间段更旧)。

但是我正在寻找:

  1. 这是一种聪明的方法。
  2. 一个现有的开源 Java 组件可以实现这一点。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    听起来你需要一个缓存。尝试使用 Guava 中的 CacheBuilder(参见 Caches Explained)或 EhCache

    【讨论】:

      【解决方案2】:

      Google Guava 缓存满足您的所有要求以及更多!见Caches Explained

      【讨论】:

      • 番石榴+1!没有立即考虑
      【解决方案3】:

      我会使用JCS,虽然@sjr 真的很喜欢 Guava 的想法

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-25
          • 2011-08-04
          • 2016-10-10
          • 2010-11-30
          • 2015-06-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多