LRU是Least Recently Used的縮寫(xiě),也就是“最近最少使用”算法。在計(jì)算機(jī)領(lǐng)域里,LRU算法是一種用于緩存中的頁(yè)面置換算法。
/**
* LRU緩存算法的Java實(shí)現(xiàn)
*/
public class LRUCache<K, V> extends LinkedHashMap<K, V> {
private int maxCapacity;
public LRUCache(int initialCapacity, float loadFactor, int maxCapacity) {
super(initialCapacity, loadFactor, true);
this.maxCapacity = maxCapacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > maxCapacity;
}
}
上面這段代碼是一個(gè)基于Java語(yǔ)言實(shí)現(xiàn)的LRU緩存算法。在該算法中,首先利用Java中的LinkedHashMap實(shí)現(xiàn)了一個(gè)哈希表,然后重寫(xiě)了removeEldestEntry方法,以檢查哈希表中元素的個(gè)數(shù)是否超過(guò)了緩存的最大值。如果超過(guò)了,就將最近最少使用的元素刪除掉,從而保證哈希表中始終保持著最近訪問(wèn)的元素。
上一篇css橫向菜單怎么鋪