我正在使用以下格式的數據元組:[IP,字節數,時間]。我在IP上創建了一個HashMap來計算爲每個IP服務的字節數。然後,我意識到我需要刪除最近最少使用的鍵值對來創建更多空間。我想創建一個時間約束,比如說1小時,並且在那段時間內沒有動作的情況下刪除鍵值對。所以我需要保存每一對的更新時間。事實上,對於具有按時間戳排序的對的良好性能來說似乎是合理的。創建按Java中的創建/更新時間排序的有序HashMap
因此,我想要做的是維護一個基於鍵值對的創建或更新時間的排序列表。我需要明確地瞭解這些創建和更新時間。我提出了兩個不同的想法,但現在確切地確定要使用哪一個以及如何使用。這裏是我的兩個想法:
- 我需要一個LinkedList頭指向最近更新的鍵值對的時間戳,並有這個鍵值對點列表節點。
- 我需要根據其創建/更新時間以排序順序維護HashMap。也許我需要用整數值和長指示時間戳將整數值更改爲對象。
而問題是如何在Java中實現這些功能以實現高效的添加/刪除/獲取性能?或者我可以使用哪些庫來獲取按創建/更新時間排序的HashMap?
HashMap本質上是無序的。 – SLaks 2013-03-11 17:26:06
你真的想做什麼?您是否嘗試從地圖中刪除基於年齡的值?或者你想要按順序顯示值?您的地圖中有多少個值?現在,你只是問如何實現你的最佳想法解決一些問題。如果你說出你的問題並讓其他人給你潛在的解決方案,你會得到更好的答案。 – kdgregory 2013-03-11 18:53:25
我正在處理數據元組[IP,字節,時間]。我有IP和每個IP地址的字節大小。每次新數據到來時,我都會更新HashMap。我需要知道時間值,以便我可以基於某個時間限制(假設一小時)移除最近最少使用的時間值,假設鍵值對的大小爲1K。 – mert 2013-03-11 18:56:12