1. 问题
- Java 中 ArrayList 和 Vector 同为动态数组,有什么异同?
2. 解答
a. 相同点
- 两者都是基于索引的,内部由一个数组支持;
- 两者都维护插入的顺序,可以根据插入顺序获取元素;
- ArrayList 和 Vector 都允许 null 值,也可以使用索引值对元素进行随机访问;
b. 不同点
- Vector 是同步的,而 ArrayList 不是,如果需要在迭代的时候对列表进行改变吗,应该使用 CopyOnWriteArrayList;
- ArrayList 比 Vector 快,也不会过载;
- ArrayList 更通用,可以使用 Collection 工具类更轻易地获取同步列表和只读列表;