ArrayList和Vector都实现了List和RandomAccess接口,都是以动态数组来存储数据,所以可以进行快速的随机访问,Vector出现的比ArrayList要早,Vector是线程安全的,适用于多线程的程序。ArrayList没有进行同步操作,比Vector速度要快,但是只能在单线程程序中使用。而LinkedList是用链表存储数据,访问链表需要一个元素接着下一个元素迭代,不能用索引来随机访问,它的优点是插入和删除元素的速度很快,而且没有容量限制,不像动态数组,每次装满后都要重新分配内存。
综上,ArrayList适合在数据量确定,不需要频繁插入删除数据,需要快速进行随机访问的情况;LinkedList适合用于数据量不确定,需要随时插入删除数据的情况;单线程下不要使用Vector。