LRU原理及实现

LRU(Least Recently Used)是一种常用的页面替换算法,核心思想是最近最少使用的数据会被优先淘汰。它广泛应用于内存有限的场景,如操作系统的内存管理和缓存系统。文章介绍了LRU的基本原理,并详细讲解了如何使用HashMap和双向链表实现一个简单的LRU缓存容器,包括增加、获取和删除元素等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

1. LRU原理

LRU全称是Least Recent Use,表示最近最少使用的,该思想最初用于计算机操作系统中,内存中的容量较有限,为了能更加合理的利用内存中的性能,对用户的使用作出假设,最近最少使用的越不重要,最近使用的越有可能使用到,使得该元素更容易获取到。如果元素当前容量超过了内存最大容量,则需要删除掉最近最少使用的元素。
在其之后,许多缓存及许多分布式系统都采用才思想。

2. LRU实现

下面基于hashMap实现一个简单的非安全的LRU容器。
主要思路如下:

  1. 数据结构。采用hashMap(采用java自带)及双向链表(自己实现)。
  2. 主要功能:
    1. 增加元素
    2. 获取元素
    3. 删除元素

数据结构:

/**
 * 节点类
 * 包含四个元素:key、value、pre节点、next节点
 */
class Node{
   
   
     String key;
     String value;
     Node pre;
     Node next;

     Node(String key, String value){
   
   
         this.key = key;
         this.value = value;
     }
}

具体功能实现:

public class LruImpl {
   
   

    private Node head;
    private Node end;

    /**
     *  lru容器中可以容纳最多元素
     */
    private int limit;

    private HashMap<String , Node > hashMap;

    /**
     * 初始化最大的容器
     * @param limit  可以容纳最多元素
     */
    public LruImpl(int limit){
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值