public class LRUCache<K,V> {
private static final float hashTableLoadFactor = 0.75F;
private LinkedHashMap<K, V> map;
private int cacheSize;
public LRUCache(int cacheSize) {
//注意HashMap的一个实例有两个影响其性能的参数:初始容量(capacity = N/0.75)和负载因子(default = 0.75)
this.cacheSize = cacheSize;
int initialCapacity = (int)Math.ceil((double)((float)cacheSize / 0.75F)) + 1;
this.map = new LinkedHashMap<K, V>(initialCapacity,
0.75F, //作为一般规则,默认loadFactor负载因子(0.75)在时间和空间成本之间提供了良好的权衡。
true); //accessOrder=false:按插入顺序,accessOrder=true:按LRU算法顺序
}
}
使用java实现LRU算法
最新推荐文章于 2024-10-08 16:15:39 发布
本文深入探讨了LRUCache的实现细节,通过分析LinkedHashMap的使用方式,解释了如何创建一个自定义的LRUCache结构。该结构能够根据最近最少使用的策略自动移除元素,以维持缓存大小在预设范围内。
650

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



