这两个类之间都实现了List接口,他们都是有序存储的。即存储在这两个集合中的数据都是有顺序的,都可以通过他们的位置索引号取出数据。并且数据允许重复。
(1)同步行性
Vector是线程安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的,就是它的方法之间是不同步的。如果只有一个线程访问到集合,最好是使用ArrayList,因为不用考虑线程安全问题,效率也会高一些。如果有多个线程访问,最好使用Vector,以为不需要我们去编写线程安全的代码。
备注:对于Vector&ArrayList,Hashtable&HashMap。要记住线程安全问题,记住Vector与Hashtable都是线程安全的,他们是旧的是java一诞生就有的,而ArrayList与HashMap是新的,是在java2时才有的,他们是线程不安全的。
(2)数据增长
ArrayList与Vector都有一个初始的容量大小。当存储进他们的元素的个数超过了容量时,就要增加存储空间,每次增加存储空间不只是增加一个存储空间,对于Vector默认增加为原来的两倍。对于ArrayList默认增加为原来的1.5倍。