超时哈希表 Java
Timeout hashtable Java
我仍在学习编程,遇到了一项我必须完成的有趣任务。非常感谢您的帮助,因为我不知道如何执行这样的任务,而且我已经为此奋斗了几天...
A class 将元素存储在哈希表中一段定义的时间。时间用完后,必须删除值和键。访问或操作一个值,重置该值的计时器。我设法弄清楚的是使用计时器,但我不知道从哪里开始。我不能使用其他答案中建议的任何其他东西,例如 Guava MapMaker。
我很感激你的想法和帮助大家!
如果滚动你自己的解决方案,这可能涉及将条目存储在具有时间戳的 ConcurrentMap
中。然后您可能会有一个计划的作业(请参阅 ScheduledExecutorService),它会删除陈旧的条目。
这个问题已经被许多缓存实现解决了很多次。请参阅 Guava 的 CacheBuilder 以了解其中一种实现方式。
使用 put、get 和 remove 等方法创建一个 class 并发 Hashmap
。
放置元素时,将其添加到地图并安排一个可运行的程序在一段时间后将其删除。请参阅 SchedulerExecutorService
class 来执行此操作。
执行器服务的submit()
方法returns一个Future,它可以让你在必要时取消删除过程。
我仍在学习编程,遇到了一项我必须完成的有趣任务。非常感谢您的帮助,因为我不知道如何执行这样的任务,而且我已经为此奋斗了几天...
A class 将元素存储在哈希表中一段定义的时间。时间用完后,必须删除值和键。访问或操作一个值,重置该值的计时器。我设法弄清楚的是使用计时器,但我不知道从哪里开始。我不能使用其他答案中建议的任何其他东西,例如 Guava MapMaker。
我很感激你的想法和帮助大家!
如果滚动你自己的解决方案,这可能涉及将条目存储在具有时间戳的 ConcurrentMap
中。然后您可能会有一个计划的作业(请参阅 ScheduledExecutorService),它会删除陈旧的条目。
这个问题已经被许多缓存实现解决了很多次。请参阅 Guava 的 CacheBuilder 以了解其中一种实现方式。
使用 put、get 和 remove 等方法创建一个 class 并发 Hashmap
。
放置元素时,将其添加到地图并安排一个可运行的程序在一段时间后将其删除。请参阅 SchedulerExecutorService
class 来执行此操作。
执行器服务的submit()
方法returns一个Future,它可以让你在必要时取消删除过程。