寒假第二天

今日的学习目标很明确:攻克ArrayList与LinkedList的底层差异及使用场景,拒绝死记硬背,以代码验证结论。

上午先梳理了二者的底层结构:ArrayList基于动态数组实现,LinkedList则是双向链表结构。为了直观感受性能区别,我写了两组测试代码,分别在两种集合中执行“随机访问”和“中间插入”操作,各循环10000次。测试结果很清晰:随机访问时ArrayList的耗时仅为LinkedList的1/20,这是因为数组支持下标直接寻址;而中间插入元素时,LinkedList的效率更高,不用像ArrayList那样频繁移动数组元素。

下午针对易错点做了专项练习,比如ArrayList的扩容机制——默认初始容量为10,扩容时会新生成一个1.5倍容量的数组并复制原元素,这也是它插入慢的原因之一。我还特意写了一段代码,手动指定ArrayList的初始容量,对比发现,当数据量较大时,指定容量能减少扩容次数,显著提升效率。

晚上复盘今日的知识点,整理了一张对比表,标注了各自的适用场景:查询多、增删少用ArrayList;增删多、查询少用LinkedList。同时也记录了自己的误区:之前以为LinkedList整体性能优于ArrayList,其实是忽略了使用场景的差异。

明日计划:学习HashMap的基础用法,重点搞懂键值对的存储和获取

posted @ 2026-01-21 18:38  yang…  阅读(0)  评论(0)    收藏  举报