2016-09-18 9 views
0

java.util.Mapの実装では、指定された時間アクセスされなかったときに自動的にエントリが期限切れになります。私はいくつかの時間制限付きでエントリを自動的に期限切れにする多くのライブラリを見つけました。しかし、私は余分な条件があります。エントリは、期間内にアクセスされていない場合にのみ削除する必要があります。アクセスされない要素の自動期限切れのマップ

+0

です。 https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/map/PassiveExpiringMap.html既にあります。オブジェクトが期限切れになっていない場合は、アクセス時に有効期限をリセットするように拡張することができますまだ。また、基本的な期限切れマップについては既にこれを見てきたでしょうが、http://stackoverflow.com/questions/3802370/java-time-based-map-cache-with-expiring-keys編集:以下の答えがはるかに良いように見えます。 –

答えて

3

Guava's cacheを使用できます。

それは二つの選択肢があります:

  1. expireAfterWrite:エントリがキャッシュに追加されたので、一定期間後にエントリー期限を。
  2. expireAfterAccess:エントリがキャッシュ内で最後にアクセスされてから一定時間後にエントリを失効させます。何をしたい

は、Apacheは、あなたがこの非常に簡単の受動的なバージョンを実装するために使用することができAbstractMapDecoratorを持っている数2

関連する問題