酷代码 AI
菜单
服务商

在java开发中,编写代码实现lru算法 ?

在Java中实现LRU(Least Recently Used)缓存的一种常见方法是使用LinkedHashMap类。下面是一个简单的示例: ```java import java.util.LinkedHashMap; import java.util.Map; public class LRUCache<K, V> extends LinkedHashMap<K, V> { private int capacity; public LRUCache(int capacity) { // 设置accessOrder为true,以便在访问后调整元素顺序 super(capacity, 0.75f, true); this.capacity = capacity; } @Override protected boolean removeEldestEntry(Map.Entry<K, V> eldest) { // 当map中元素数量超过指定的最大容量时,就删除最久未使用的元素 return size() > capacity; } } ``` 这个类可以像这样使用: ```java LRUCache<String, String> cache = new LRUCache<>(3); cache.put("1", "1"); cache.put("2", "2"); cache.put("3", "3"); cache.get("1"); // 最近访问了"1" cache.put("4", "4"); // 这会导致"2"被移除,因为它是最久未使用的 System.out.println(cache); // 输出 {3=3, 1=1, 4=4} ``` 这个简单的实现使用了Java的LinkedHashMap类,它默认实现了LRU策略。当我们调用`put`方法时,如果缓存已满,它将删除最近最少使用的条目。`get`方法对键进行访问,这将更新该键的访问时间,并可能调整其在内部链表中的位置。 [2023-11-09 17:22:14 | AI百度知道回答 | 386点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]