0

我想实现一个简单的 MRU 缓存:我将使用一个队列:

get(Object):
  • 检查队列是否包含对象
    • 是:将其从队列中删除并插入到开头
    • 否:将请求转发给系统,获取元素并在开头插入

这种方法好吗?我已经看到许多实现都使用地图,但我不明白为什么。为什么我需要一个用于缓存的键值对?!

4

1 回答 1

0

因为使用地图检查集合是否包含元素要快得多(理论上 O(1)),使用队列您必须遍历所有现有元素并进行比较,即 O(sizeOfQueue)

于 2013-04-18T12:58:23.880 回答