[英]Timeout hashtable Java
我仍在學習編程,遇到了我必須要做的有趣的任務。 非常感謝您的幫助,因為我不知道如何執行此類任務,並且我已經與之抗爭了幾天。
一個類,將元素存儲在Hashtable中一段確定的時間。 時間用完后,必須刪除值和鍵。 訪問或操作一個值會重置該值的計時器。 我設法弄清楚的只是使用計時器,但我不知道從哪里開始。 我不能使用其他答案中建議的其他任何東西,例如Guava MapMaker。
我會很感激您的想法並為您提供幫助!
使用並發Hashmap
創建類,並使用put,get和remove這樣的方法。
放置元素時,將其添加到地圖中並安排可運行時間以在一段時間后將其刪除。 請參閱SchedulerExecutorService
類來執行此操作。
executor服務的commit submit()
方法返回一個Future,如果需要,您可以使用它取消刪除過程。
如果使用自己的解決方案,則可能需要將其存儲在帶有時間戳的ConcurrentMap
中。 然后,您可能會有一個計划的作業(請參閱ScheduledExecutorService ),該作業將刪除陳舊的條目。
許多緩存實現已多次解決此問題。 請參閱Guava的CacheBuilder以獲取一種這樣的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.