学习日记-LRU缓存成员变量,入参day1

LRU缓存关于类:成员变量声明,构造函数

总体的意思就是说把需要用到的参数,传给成员变量;同时做好封装和简化的操作

问题一:为什么 Node 构造函数里不初始化 prevnext

答案:因为对于数据节点来说,它们刚被创建时,根本不知道自己该连向谁

问题二:为什么 LRUCache 构造函数里不用 thisheadtail 赋值?

答案:因为 headtail 是"引用(指针)",而不是"基本数据类型"。

三。那为啥hashmap的这个不拿成入参带进去,然后this赋值

1. 谁拥有控制权?(外部规则 vs 内部实现)

  • capacity(容量) :这是 LRU 缓存的核心业务规则 。它是由使用者 (调用你代码的人)在创建缓存时决定的(比如:我要一个容量为 10 的缓存)。所以它必须作为参数传进来,并用 this.capacity = capacity 赋值给成员变量。
  • cache(HashMap) :这是 LRU 缓存为了达到目的而采用的内部数据结构 。使用者只关心"我存进去的数据能不能取出来",他们根本不关心、也不应该关心 你底层是用 HashMap 还是用数组实现的。因此,cache 是 LRU 的"私有财产",由 LRU 自己在内部悄悄初始化(new HashMap<>())即可。

四 参数和成员变量的区别

public LRUCache(){ capacity = capacity; cache = new HashMap<>(); head = new Node(0,0); tail = new Node(0,0); head.next = tail; tail.prev = head; }那你这么说我构造函数不加capacity,直接访问不就行了吗;啥意思

相关推荐
qeen87几秒前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
陈年老古董1 小时前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
旺仔小馒头wang1 小时前
AI 智能手机发布会:赋予人类的五种新能力
人工智能·学习·音视频
人工智能培训1 小时前
未来三年,AI 落地的五个确定性判断
大数据·人工智能·学习·生活·ai写作
LONGZETECH1 小时前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车
彧azz1 小时前
操作系统时间管理与系统核心板块学习总结
c语言·笔记·学习·系统架构
啦啦啦!1 小时前
RAG初阶学习
学习·ai·知识库·rag
外收内放2 小时前
数据分析(jupyter与pandas初体验)
python·学习
zhangrelay2 小时前
《机器人控制器设计与编程》课程习题资料-2026
linux·笔记·学习·ubuntu