相同点:
1、具有相同的父类AbstractList。
2、数据都是用内部维护的数组来存放。
3、设计理念基本相同。
不同点:
1、Vector是线程安全的ArrayList是线程不安全的
原因:Vector中所有操作都必定有一步是方法被synchronized关键字修饰的,所以是安全的
ArrayList中没有synchronized同步代码,所有多线程编程中,线程是不安全的
2、存储长度不够的扩容大小不一样
Vector是扩容固定值,这个值是初始化的时候默认的数组存储个数(默认是10)。
ArrayList是扩容当前数量的1.5倍。
(前提是最终扩容没有超过规定的最大存储个数:0x7fffffff-8 )
选择:多线程操作首先考虑Vector
单线程操作首选ArrayList
除了线程安全方面,其他基本都一样。