LinkedList是我们常见的集合,今天我们来分析下源码
先看类结构:继承了AbstractSequentialList这个抽象类(这个先去继承抽象类原因和ArrayList类似,可以看我的ArrayList源码解析的文章),然后再实现List接口,Deque(双端队列的接口),和序列化接口。
接下来看属性
下面开始分析方法:
add方法
add方法直接调用了linkLast方法将节点添加到尾部。
用图表示:红色部分就是改变和新增的,对应上面代码注释看很好理解。
linkBefore方法
get方法查找元素
这个就是遍历查找元素
当index小于size/2时候,从0开始否则就从size-1开始,多次遍历直到index ,每次改变x节点最后返回x节点。
unlink方法:
网友评论