LinkedList 实现List<E>, Deque<E>, Cloneable, java.io.Serializable接口
对于Deque解释如下
这是一个线性的双端队列接口,继承自接口Queue
下面是LinkedList的主要参数
first第一个节点 last最后一个节点 size 列表的长度
主要看一下add 方法
我们可以看到LinkedList添加节点的时候 是New了一个Node节点 这个节点有三个参数 item 元素
next 下一个元素 prev 上一个元素
他的一个三参构造器 将最后一个节点 作为新加的节点的前一个元素(prev)的值
新节点的下一个节点(next)赋值null
然后 将新节点赋值给last变量 更新last标识 最后size +1 (列表长度)and modCount+1 (添加次数)
remove();
remove(int);
判断index 是不是在size范围之内
总体来说 就是 如果当前节点 A 前一个节点是空 就将LinkedList得frist标识 置为A节点得next指向得节点
如果不是 则将A节点得前一个节点得next值指向 A节点得下一个节点
当前节点 A 下一个节点是空 就将LinkedList得last标识 置为A节点得prev指向得节点
如果不是将A节点得下一个节点得 前一个节点指针(prev)指向A节点得prev节点
可以跳过上面这个四行 总的数据结构就是 一个双向链表 基础得删除增加操作
总结:LinkedList整体结构 是以对象Node为元素 得一个双线链表
对比前一章得ArrayList 我们可以看出 如果做插入操作 删除操作 用Linkedlist会有较高得效率
对于查询来说 通过数组下标直接访问一般会比链表要快
所以我们要更具不同的业务场景选择合适得列表结构