最近学习了数据结构的一些常用类库,数量不少,记录一下类似的数据结构类库的区别吧
这次是ArrayList、LinkedList和Vector三种
1. ArrayList和LinkedList的相同点:
(1)LinkedeList和ArrayList都实现了List接口。
(2)ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用。
2. ArrayList和LinkedList的相同点:
(1)ArrayList底层的实现数组,而LinkedList是双向链表。
(2)ArrayList进行随机访问所消耗的时间是固定的,因此随机访问时效率比较高。
(3)LinkedList是不支持快速的随机访问的,但是在插入删除时效率比较高。
(4)二者均是线程不安全的方式。
2. ArrayList和Vector的相同点:
(1)ArrayList和Vector都是用数组实现的。
(2)默认初始化大小都是10
1. ArrayList和Vector的不同点:
(1)Vector多线程是(安全)的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;
两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为 原来的1.5倍,Vector会扩充为原来空间的2倍)。
(2)Vector可以设置增长因子,而ArrayList不可以。
(3)ArrayList有三个构造方法,Vector有四个构造方法。