我有一个静态hashmap,我用它来缓存对象。对象具有不同的类型,包括列表和哈希映射。
我想在一定的时间间隔后使缓存中的对象无效。我可以为我的对象添加时间戳并手动使它们无效。但是,我不知道是否有任何方法可以找到列表添加到hashmap时的时间戳。
有任何意见或建议吗?
答案 0 :(得分:2)
让您在Hashmap
中存储的所有对象实现单个Expirable
界面:
public interface Expirable {
public Date getExpiryDate();
}
完成后,您可以轻松地遍历Hashmap
中的每个元素并删除已过期的元素。
答案 1 :(得分:1)
Guava界面com.google.common.cache.Cache
可以通过调用Cache.asMap()
作为地图进行访问。
有关文档,请参阅CacheBuilder
,特别是expireAfterWrite()
方法。