add操作:
默认在linkedList新增在最后一个
LinkedList里面只记录first(第一个节点元素)和last(最后一个节点元素)
node节点中关联pre(上一个节点元素)和next(节点元素)
该Node节点实际就是整个LinkedList的承载器,可以理解为ArrayList的elementData
从Node该类可以看出LinkedList底层是链表原理(前置和后置节点关联)
由此可以看出LinkedList适用于新增/修改,只需要关联节点的左右节点元素
unlink:删除节点
1. 取出该x节点元素的pre节点和next节点
2.1 pre空:删除的node是first节点,将x.next置位first
2.2 pre非空:将x.next置为pre.next,同时将x.pre置为空断开节点
3.1 next为空:删除的node是last节点,将x.pre置为last
3.2 next非空:将x.pre置为next.pre,同时将x.next置为空断开节点
4. 将x.item置为null同时size--,modCount++
get:获取元素
1.index索引校验
2.判断index是否小于总长度size的一半,则从first首部开始查找,反之从last尾部开始查找
由此可以看出,LinkedList查询效率较低,可能需要对半全部检索