2011-12-14 3 views
1

У меня есть статический hashmap, который я использую для кэширования объектов в нем. Объекты имеют разные типы, включая списки и хэш-карты.Автоматическое истечение объектов из Hashmap

Я хочу аннулировать объекты из кеша через определенный промежуток времени. Я могу добавить временную метку к моим объектам и аннулировать их вручную. Но я не знаю, есть ли способ найти временную метку, когда список был добавлен в hashmap.

Любые комментарии или предложения?

ответ

2

Есть все объекты, которые хранят в вашем Hashmap реализация одного Expirable интерфейса:

public interface Expirable { 

    public Date getExpiryDate(); 
} 

После этого вы легко сможете перебирать каждый элемент в вашем Hashmap и удалить те, которые уже истекли.

1

Интерфейс Guava com.google.common.cache.Cache можно получить в виде карты, позвонив по телефону Cache.asMap().

Обратитесь к CacheBuilder за документацию, в частности метод expireAfterWrite().

Смежные вопросы