我正在使用以下格式的数据元组:[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