特点
- 底层实现了双向链表和双端队列的特点
- 可添加任意元素,包括null,可重复
- 线程不安全
底层源码分析
LinkedList的创建
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/537f9fcc3422c7d45d74a0639e0d737d.png)
创建这两种方式可以看出都是先初始化一个空的对象,需要的话再调用add方法
添加
- 先进入这个方法
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/08dd6aef48c5688a83d8d40a0fdaafd2.png)
- 然后再调用这个方法
- 默认使用尾插法,注意的是,双向链表的尾结点指向null,头节点也是指向null的
- 这里的l == null判断,并不影响存放的null值,因为存放的null值,也是有地址的,这里null是地址为null
其他的也就没啥了,也就是正常的链表增删改查。
ArrayList和LinkedList的比较
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/df2a8bd13861474e7d284e472f28fb33.png)