LinkedList底层结构和源码
LinkedList底层结构和源码
-
LinkedList的全面说明
-
LinkedList底层实现了双向链表和双端队列特点
-
可以添加任意元素(元素可以重复,包括null)
-
线程不安全,没有实现同步
LinkedList的底层操作机制
- LinkedList底层维护了一个双向链表
- LinkedList中维护了两个属性first和last分别指向首节点和尾节点
- 每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点,最终实现了双向链表
- 所以LinkedList的元素的添加和删除,不是通过数组完成的,相对效率较高
- 模拟一个简单的双向链表
LinkedList增删改查底层机制
LinkedList.add()
LinkedList.remove()
LinkedList.set()
| 底层结构 | 增删的效率 | 改查的效率 | |
|---|---|---|---|
| ArrayList | 可变数组 | 较低,数组扩容 | 较高 |
| LinkedList | 双向链表 | 较高,通过链表追加 | 较低 |
如何选择Arraylist和linkedList:
- 如果我们改查多,选择Arraylist
- 如果我们增删多选择LinkedList

浙公网安备 33010602011771号