基于 JDK8
一、介绍
LinkedList.java Doc 部分描述如下
主要几点:
LinkedList 采用双线链表实现,链表逻辑图如下
LinkedList 关于链表节点结构定义如下
三、LinkedList 代码简单剖析
3.1、链表属性信息
- 【头节点引用】transient Node
first - 【尾节点引用】transient Node
last -
3.2、插入元素
3.2.1、尾节点插入
相关代码如下 (linkLast(E))
如上述代码所示,进行头尾指向的设置3.2.2、头节点插入
相关代码如下( linkFirst(E) )
如上述代码所示,进行头尾指向的设置3.2.3、中间节点插入
相关代码如下
插入步骤: 1、找到索引所在位置节点实例
- 2、重新拼接指针指向
3.3、查询
3.3.1、获取头节点/尾节点
头尾节点的获取直接从属性中获取3.3.2、获取中间节点
一次二分,然后循环遍历3.4、移除
除了头尾移除外,其他的移除都需要循环遍历,匹配之后然后移除