Старение объектов в коллекции

Я хочу, чтобы можно было состаривать объекты в коллекции.

Например, я мог бы поместить строки в HashSet.

  1. Я хотел бы, чтобы временные метки ассоциировались с тем, когда строка была помещена в HashSet.
  2. Я хотел бы, чтобы String старше, чем, скажем, время X, был удален из HashSet.
  3. Я хотел бы иметь возможность сказать "коснуться" строки и обновить время, когда она была вставлена ​​в коллекцию.

Так что я могу сделать это, отслеживая каждую строку, а затем запуская нить очистки дома и удаляя строку из коллекции, если она старше определенного кванта времени.

Однако я ищу:

  1. Либо Умный способ сделать это.
  2. Существующий Java-компонент с открытым исходным кодом, который выполняет это.

Благодарю.

4 ответа

Решение

Похоже, вам нужен кеш. Либо попробуй CacheBuilder(см. Объяснение кешей) из Guava или EhCache.

Кэши Google Guava отвечают всем вашим требованиям и не только! Смотрите объяснения кешей.

Почему бы просто не создать свой собственный класс Collection (для задач по уборке дома), который поддерживается HashMap<String, Date>?

Я хотел бы использовать JCS, очень нравится идея Guava, хотя @sjr

Другие вопросы по тегам