Java数据结构-LinkedList(四)

来源:互联网 发布:债券数据怎么看 编辑:程序博客网 时间:2024/05/16 13:03

参考博客:http://www.cnblogs.com/skywang12345/p/3561803.html,表示感谢!

LinkedList 是List接口的一个基于双向链表的实现类,继承了AbstractSequentialList类,实现了List接口,Queue接口(队列),Deque(双端队列),Cloneable接口,Serializable接口。因此LinkedList具有队列的特点,可以作为堆栈,队列,双端队列使用。

和ArrayList一样,LinkedList也是非同步的,如果不需要使用队列的特性的话,一般使用ArrayList。

遍历LinkedList时,使用removeFist()或removeLast()效率最高。但用它们遍历时,

会删除原始数据;若单纯只读取,而不删除,应该使用增强for循环或者iterator的方式,

千万不要使用角标访问的形式来遍历。

LinkedList与Collection关系如下图:



LinkedList的本质是一个双向链表,那么什么是双向链表呢?

双向链表(双链表)是链表的一种。双链表由一个个节点组成,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

双链表的示意图如下:

表头为空,表头的后继节点为"节点10"(数据为10的节点);"节点10"的后继节点是"节点20"(数据为10的节点),"节点20"的前继节点是"节点10";"节点20"的后继节点是"节点30","节点30"的前继节点是"节点20";...;末尾节点的后继节点是表头。


双链表删除节点

双链表添加节点

LinkedList源码分析:

0 0
原创粉丝点击