【集合044】用linkedhashmap实现lru算法?

阅读 46

2022-03-12

用linkedhashmap实现lru算法?

主要考察2个点

  • accessorder实现lru的逻辑
  • removeEldestEntry的复写

在插入之后,会调用linkedhashmap的afternodeinsertion方法,需要重写removeeldestentry方法

image-20220309185201276

import java.util.LinkedHashMap;
import java.util.Map;

class Scratch<K, V> extends LinkedHashMap<K, V> {
    
    private int capacity;

    public Scratch(int capacity) {
        super(16, 0.75f, true);
        this.capacity = capacity;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        return size() > capacity;
    }
}

精彩评论(0)

0 0 举报