均在java.util包中,这些类在.../java/util/目录下,是可伸缩数组,可以动态改变长度的数组。
ArrayList: 线程不安全,数组,适合查找(下标),初始化容量可自动扩容50% (1.5倍),适用于索引或集合末端插入删除
Vector: 线程安全,数组,适合查找(下标),初始化容量可自动扩容100% (2倍)适用于索引或集合末端插入删除(多个线程同时访问该容器)
两者最大区别是同步synchronization的使用,没有一个ArrayList方法是同步的,但是Vector的绝大多数方法(例如add,insert,remove,set,equals,hashcode等)是同步的,所以他是线程安全的。
LinkedList:线程不安全,双向链表,审核插入(遍历),删除 ,适用于指定位置插入删除的操作。