java学习第24课
暑期自学来到第二十四课,本节课学习 LinkedList,和上一课的 ArrayList 形成对比学习,二者同属 List 接口,基础用法大体一致,但底层结构、性能差别很大。
ArrayList 底层依托数组实现,查询快,中间、头部增删元素需要移动大量元素;而 LinkedList 底层是双向链表,内存空间不连续,元素依靠节点互相引用连接。它在首尾位置新增、删除元素效率很高,但是随机索引查找数据需要从头依次遍历,查询速度比较慢。
LinkedList 除了 List 通用方法之外,自带很多操作首尾的特有方法,可以轻松实现栈、队列的效果,适合频繁在两端进行增删的场景。练习过程中我也留意了遍历方式,增强 for 循环、迭代器都适用,但尽量不要用普通 for 循环通过索引循环遍历 LinkedList,效率很低。
学习时踩了一些小误区,一开始写代码不分场景随意选用集合,不清楚什么时候该用 ArrayList,什么时候选择 LinkedList。有时候习惯用 get (index) 循环遍历链表,造成不必要的性能损耗。同时我也记住了二者的选择标准:日常大多查询、少量增删优先 ArrayList;大量首尾增删操作,再考虑 LinkedList。
本课核心重在区分两种 List 实现类的底层结构与适用场景,没有特别复杂的语法。集合的选择不能凭喜好,要根据业务的数据操作特点决定。接下来我会多写对比案例巩固知识点,继续学习 Set 相关集合。

浙公网安备 33010602011771号