java学习之LinkedList(链表)

LinkedList:一种线性表,但不按照线性顺序存储数据(实际上为链表)。

链表分为单向链表和双向链表,实际应当还有循环链表。

单向链表:将一个区域分成两部分,分别为节点区域和数据域。

如下图所示:

双向链表:设置两个节点指针,使其指向前驱和后继节点,前驱表示指向它的节点,后继表示它指向的节点。

 

Linkedlist和arraylist使用方式类似,但二者执行不同操作时效率不同。

Arraylist查找和修改的效率要高,增加和删除的效率较低,linkedlist正好与之相反。

以下情况使用 ArrayList :

频繁访问列表中的某一个元素。

只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

你需要通过循环迭代来访问列表中的某些元素。

需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

LinkedList 继承了 AbstractSequentialList 类。

LinkedList 实现了 Queue 接口,可作为队列使用。

LinkedList 实现了 List 接口,可进行列表的相关操作。

LinkedList 实现了 Deque 接口,可作为队列使用。

LinkedList 实现了 Cloneable 接口,可实现克隆。

LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。

Linkedlist有两个构造方法,分别为无参构造和以集合为参数进行构造。

简单代码演示如下:

java学习之LinkedList(链表)_第1张图片

输出结果为:

java学习之LinkedList(链表)_第2张图片

 

Linkedlist其他常用方法如下:

java学习之LinkedList(链表)_第3张图片 

java学习之LinkedList(链表)_第4张图片 

 更多相关方法可参考:LinkedList

你可能感兴趣的:(笔记,链表,java,学习)