[关闭]
@yudesong 2018-02-12T03:02:19.000000Z 字数 468 阅读 650

Java 最近最少使用算法(LRU)

Java LRU


Java已经为我们提供了这种形式的数据结构-LinkedHashMap!它甚至提供可覆盖回收策略的方法(见removeEldestEntry文档)。唯一需要我们注意的事情是,改链表的顺序是插入的顺序,而不是访问的顺序。但是,有一个构造函数提供了一个选项,可以使用访问的顺序(见文档)。

  1. import java.util.LinkedHashMap;
  2. import java.util.Map;
  3. public LRUCache extends LinkedHashMap {
  4. private int cacheSize;
  5. public LRUCache(int cacheSize) {
  6. //true for access-order, false for insertion-order
  7. super(16, 0.75, true);
  8. this.cacheSize = cacheSize;
  9. }
  10. protected boolean removeEldestEntry(Map.Entry eldest) {
  11. return size() >= cacheSize;
  12. }
  13. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注