Hashmap中对象的自动到期

时间:2011-12-14 18:35:19

标签: caching hashmap

我有一个静态hashmap,我用它来缓存对象。对象具有不同的类型,包括列表和哈希映射。

我想在一定的时间间隔后使缓存中的对象无效。我可以为我的对象添加时间戳并手动使它们无效。但是,我不知道是否有任何方法可以找到列表添加到hashmap时的时间戳。

有任何意见或建议吗?

2 个答案:

答案 0 :(得分:2)

让您在Hashmap中存储的所有对象实现单个Expirable界面:

public interface Expirable {

    public Date getExpiryDate();
}

完成后,您可以轻松地遍历Hashmap中的每个元素并删除已过期的元素。

答案 1 :(得分:1)

Guava界面com.google.common.cache.Cache可以通过调用Cache.asMap()作为地图进行访问。

有关文档,请参阅CacheBuilder,特别是expireAfterWrite()方法。