// 示例代码 // 设定缓存大小为 10,即最多可以存储 10 个内存块 int cacheSize = 10; // 初始化 LinkedHashMap MapcacheMap = new LinkedHashMap(cacheSize, 0.75f, true) { @Override protected boolean removeEldestEntry(Map.Entryeldest) { // 当 LinkedHashMap 的 size 大于缓存大小时,移除最近未使用的元素 return size() >cacheSize; } };
在上述的示例代码中,大家设定了LUR算法中的缓存大小为10,并使用LinkedHashMap进行初始化。LinkedHashMap是将对象保存在一个链表中的容器,当LinkedHashMap中的size超过缓存大小时,移除最近未使用的元素。当对该容器进行某项操作时,该项在链表中的位置会更新,从而保持该项是最新元素。这个机制是实现LUR算法的关键,最新使用的数据会在队列的最前面,最近未使用的数据会被淘汰。