//LRU(Least Recently Used)缓存算法是一种常见的缓存淘汰策略, // 它的基本思想是保留最近被访问过的数据,淘汰最久未被访问的数据。下面是一个使用Java实现的简单LRU缓存算法: import java.util.LinkedHashMap; import java.util.Map; public class Test_A29<K,V> extends LinkedHashMap<K,V> { private final int capacity; // 声明LRU缓存的容量 public Test_A29(int capacity){ super(capacity,0.75f,true);// 初始化LinkedHashMap,设置容量、负载因子和访问顺序为true this.capacity=capacity;//初始化缓存容量 } // 重写removeEldestEntry方法,实现LRU缓存的淘汰策略 @Override protected boolean removeEldestEntry(Map.Entry<K, V> eldest) { return size() > capacity; // 判断是否需要移除最老的条目 } // main方法,程序入口点 public static void main(String[] args) { Test_A29<Integer, String> cache = new Test_A29<>(2); // 创建Test_A29对象,容量为2 cache.put(1, "One"); // 将键值对(1, "One")放入缓存 cache.put(2, "Two"); // 将键值对(2, "Two")放入缓存 System.out.println(cache.get(1)); // 获取键1对应的值,并打印 System.out.println(cache.get(2)); // 获取键2对应的值,并打印 cache.put(3, "Three"); // 将键值对(3, "Three")放入缓存,触发LRU淘汰最老条目 System.out.println(cache.get(1)); // 获取键1对应的值(已淘汰),打印null System.out.println(cache.get(2)); // 获取键2对应的值,仍在缓存中,打印"Two" System.out.println(cache.get(3)); // 获取键3对应的值,打印"Three" } }