LRU缓存实现
LRU(Least Recently Used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
import java.util.LinkedHashMap;
import java.util.Map;
public class Solution {
//LRU缓存实现
public static void main(String[] args) {
Map<String, String> map = new LinkedHashMap<String, String>(15, 0.75f, true){
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
for(Map.Entry<String,String> entry : entrySet()){
stringBuilder.append(String.format("%s:%s",entry.getKey(),entry.getValue()));
}
return stringBuilder.toString();
}
@Override
protected boolean removeEldestEntry(Map.Entry<String, String> eldest) {
return size()>5;
}
};
map.put("1", "88");
map.put("2", "88");
map.put("3", "88");
map.put("4", "88");
map.put("5", "88");
map.put("6", "88");
System.out.println(map.toString());
map.put("7", "88");
map.get("3");
map.get("5");
System.out.println(map.toString());
}
}
结果:
2:883:884:885:886:88
4:886:887:883:885:88

该博客展示了如何使用Java中的LinkedHashMap实现LRU(最近最少使用)缓存策略。当缓存满5个元素时,最不常使用的数据将被自动淘汰。通过示例代码,演示了缓存的插入、更新和淘汰过程。
682

被折叠的 条评论
为什么被折叠?



