public class LRUCache<K, V> extends LinkedHashMap<K, V> { private int capacity; public LRUCache(int capacity) { super(capacity); this.capacity = capacity; } /** * 如果集合长度大于我们指定的容量,就把队尾也就是LRU(最近最少访问)的元素删掉 * @param eldest * @return */ @Override protected boolean removeEldestEntry(Map.Entry<K, V> eldest) { return size() > capacity; } /** * 在获取元素时,把元素删除,重新添加,放在队尾,表示最新被访问的元素 * @param key * @return */ @Override public V get(Object key) { V v = super.get(key); this.remove(key); this.put((K) key, v); return v; } }
利用泛型写一个 LRU 缓存
最新推荐文章于 2025-06-15 23:19:56 发布