LinkedList的底层实现原理
一、LinkedList的特点
- LinkedList底层实现了双向链表和双端队列特点可以添加任意元素(元素可以重复),包括null
- 线程不安全,没有实现同步
通过如下图可知
二、LinkedList的底层实现
LinkedList中维护了4个属性:1、链表中节点的个数 .2、链表的头结点
3.链表的尾节点 4、对链表节点的修改次数
- 而每个节点中都有item属性,用来存放数据的值
- 每个节点中都有next属性,用来指向下一个节点
- 每个节点中都有pre属性,用来指向上一个节点
有如下代码:
List list=new LinkedList();
list.add(1);
list.add(2323);
System.out.println(list);
如linkedList存放了两个元素:
**2.1首先进入无参构造,此时的各个成员初始值都为空
2.2如果是基本数据类型就进行自动装箱操作
2.3进入add()方法
2.4进入linkLadt(e)方法
2.5添加成功后,first和last都指向同一个节点
2.6之后的每一次添加都在next的后面实现添加,而后一节点又可以指向上一节点,从而实现双向循环往复的指向
三、总结
比较下ArrayList和LinkedList的差别