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 | 双向链表 | 较高,通过链表追加 | 较低 |