超时哈希表 Java

Timeout hashtable Java

我仍在学习编程,遇到了一项我必须完成的有趣任务。非常感谢您的帮助,因为我不知道如何执行这样的任务,而且我已经为此奋斗了几天...

A class 将元素存储在哈希表中一段定义的时间。时间用完后,必须删除值和键。访问或操作一个值,重置该值的计时器。我设法弄清楚的是使用计时器,但我不知道从哪里开始。我不能使用其他答案中建议的任何其他东西,例如 Guava MapMaker。

我很感激你的想法和帮助大家!

如果滚动你自己的解决方案,这可能涉及将条目存储在具有时间戳的 ConcurrentMap 中。然后您可能会有一个计划的作业(请参阅 ScheduledExecutorService),它会删除陈旧的条目。

这个问题已经被许多缓存实现解决了很多次。请参阅 Guava 的 CacheBuilder 以了解其中一种实现方式。

使用 put、get 和 remove 等方法创建一个 class 并发 Hashmap

放置元素时,将其添加到地图并安排一个可运行的程序在一段时间后将其删除。请参阅 SchedulerExecutorService class 来执行此操作。

执行器服务的submit()方法returns一个Future,它可以让你在必要时取消删除过程。