簡體   English   中英

超時哈希表Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM