LinkedList
- LinkedList底层实现了双向链表和双端队列的特点
- 可添加任意元素,元素可重复,包括null
- 线程不安全,没实现同步
LinkedList底层操作机制
- LinkedList底层维护了一个双向列表
- LinkedList中维护了两个属性first和last分别指向首节点和尾节点
- 每个节点(Node对象),里面又维护饿了prev, next, item三个属性,其中通过prev指向前一个,next指向后一个节点,实现双向链表
- 所以LinkedList的元素添加和删除,不是通过数组完成的,相对来说效率较高
ArrayList和LinkedList比较

ArrayList和LinkedList比较
- 如果改查的操作多,选择ArrayList
- 如果增删操作多,选择LinkedList
- 一般,程序中80-90%都是查询,因此大部分情况下会选择ArrayList
- 在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是ArrayList,另一个模块是LinkedList
- 二者都线程不安全
本文章使用limfx的vscode插件快速发布