一,线程安全
ArrayList和LinkedList都是线程不安全的,用在单线程环境中。如果一定在并发环境下使用,需要雍Collections类的synchronized()方法来调用。
Vector则是线程安全的,它的大部分方法都有关键字synchronized,但是效率没有前两者高。
二,扩容机制
ArrayList和Vector底层都是由Object的数组形式实现的,当进行扩容时,ArrayList扩容为1.5倍,Vector则变为原来的二倍。
可变长度数组的原理:当元素个数超过数组长度时,会产生一个新数组,将原数组的数据复制到新数组,再将新的元素添加到新数组中。
三,增删改查的效率
如果只查找指定特定位置的元素或只在集合末尾增加移除元素,那么用Vector或ArrayList
如果是其他位置的插入删除最好选择LinkedList