LinkedList
1 链表数据结构
对于链表数据结构来说,基本的单元是节点Node
对于单向链表来说,任何一个节点Node都有两个属性:
第一是:存储的数据。第二是:下一个节点的内存地址
链表的优点:随机增删元素效率较高(因为增删不涉及大量元素位移的问题)。
链表的缺点:查询效率较低,每一次查询都需要从头结点开始向下遍历查询。
单链表结构示意图
双链表的结构示意图
2 LinkedList
由于链表的元素在空间存储上内存地址不连续所以随机增删元素不会涉及到大量的元素位移,因此增删的效率高。在开发中,如果遇到随机增删数据较多的业务较多,可以使用LinkedList。
由于不能通过数学表达式计算元素的内存地址,每一次查找都是从头结点开始遍历,所以查找的效率较低。
ArrayList:将检索发挥到极致,非线程安全的集合
LinkedList:将随机增删发挥到极致,无初始化容量
3 Vector
底层也为数组,初始化容量为10 ,扩容之后是是原容量的2倍。
Vector 所有方法线程同步,都带有synchronized关键字。
Collections.synchronizedList(myList); 将线程不安全转为线程安全。