Java Collections提供开箱即用的LinkedHashMap,非常适合构建缓存。你可能在Java ME中没有这个,但你可以在这里获取源代码:
http://kickjava.com/src/java/util/LinkedHashMap.java.htm
如果您不能只是复制粘贴它,那么查看它应该可以让您开始实现一个以包含在您的移动应用程序中。基本思想只是通过地图元素包含链接列表。如果您每当有人放置或获取时保持此更新,则可以有效地跟踪访问顺序和使用顺序。
这些文档包含通过重写 removeEldestEntry(Map.Entry)
方法构建 MRU 缓存的说明。您真正要做的就是创建一个扩展和重写方法的类,如下所示:LinkedHashMap
private static final int MAX_ENTRIES = 100;
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > MAX_ENTRIES;
}
还有一个构造函数,可让您指定是希望类按插入顺序还是按使用顺序存储内容,因此您也为逐出策略提供了一些灵活性:
public LinkedHashMap(int initialCapacity,
float loadFactor,
boolean accessOrder)
传递 true 表示使用顺序,将 false 传递到广告订单。