ArrayList
采用数组形式保存数据,将对象放在连续位置中,所以最大缺点是插入删除时非常麻烦。默认初始容量是10,每次扩容默认增加一半,基于了右移。数组扩容时候调用Arrays.copyOf(),所以存储未知数量的对象时没有LinkedList快速。而且是一个线程不安全的列表。
LinkedList
采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引。LinkedList使用双向链表方式存储数据,按序号索引数据需要前向或后向遍历数据,所以索引数据慢,是插入数据时只需要记录前后项即可,所以插入的速度快。是一个线程不安全的列表。
Vector
最早的列表,依靠数组来存储数据,初始默认是10,每次扩容默认增加一倍。使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些。是一个线程安全的列表。但是现在已不使用。