2

コレクション内のオブジェクトをエージングできるようにしたい。

たとえば、HashSetに文字列を入れることができます。

  1. 文字列がHashSetに配置されたときに関連付けられたタイムスタンプが欲しいのですが。
  2. 時間Xより古い文字列をHashSetから削除したいと思います。
  3. 文字列を「タッチ」と言って、コレクションに挿入された時刻に更新できるようにしたいと思います。

したがって、各文字列を追跡し、ハウスクリーニングスレッドを実行し、特定の時間量より古い場合はコレクションから文字列を削除することで、これを実現できます。

しかし私は探しています:

  1. これを行うための賢い方法。
  2. これを実現する既存のオープンソースJavaコンポーネント。

ありがとう。

4

4 に答える 4

8

キャッシュが必要なようです。GuavaまたはEhCacheから試してみてくださいCacheBuilderキャッシュの説明を参照) 。

于 2012-10-18T20:13:18.083 に答える
4

Google Guavaキャッシュは、すべての要件などを満たしています。キャッシュの説明を参照してください。

于 2012-10-18T20:12:41.577 に答える
1

私はJCSを使用しますが、@sjrはGuavaのアイデアが本当に好きです

于 2012-10-18T20:13:55.133 に答える
1

に裏打ちされた独自のコレクションクラス(ハウスクリーニングタスク用)を作成してみませんHashMap<String, Date>か?

于 2012-10-18T20:22:09.580 に答える