我正在处理以下格式的数据元组:[IP, number-of-bytes-served, time]。我在 IP 上创建了一个 HashMap 来计算为每个 IP 提供的字节数。然后,我意识到我需要删除一些最近最少使用的键值对来创建更多空间。我想创建一个时间限制,比如说 1 小时,然后删除在该期间没有任何操作的键值对。所以我需要为每对保存更新时间。事实上,为了获得良好的性能,让这些对按时间戳排序似乎是合理的。
因此,我想做的是根据键值对的创建或更新时间维护一个排序列表。我需要明确知道这些创建和更新时间。我提出了两种不同的想法,但现在完全确定使用哪一种以及如何使用。这是我的两个想法:
- 我需要一个 LinkedList,其 head 指向最近更新的键值对的时间戳,并让这个键值对指向列表节点。
- 我需要根据它们的创建/更新时间按排序顺序维护 HashMap。也许我需要使用整数值和长指示时间戳将值从整数更改为对象。
问题是如何在 Java 中实现这些以实现高效的添加/删除/获取性能?或者我可以使用哪些库来获取按创建/更新时间排序的 HashMap?