ArrayList关键点总结:基于动态数组的数据结构;地址连续;查询效率高;插入和删除效率低;非线程安全;扩容时增大50%
ArrayList 和 LinkedList 的比较
ArrayList是实现了基于动态数组的数据结构,因为地址连续,查询操作效率会比较高,插入和删除效率比较低。
LinkedList设计基于链表的数据结构,地址是任意的,所以在开辟内存空间时不需要等一个连续的地址,对于插入和删除效率高,查询效率低(要移动指针)
适用场景分析:
对数据需要进行查询的情况时采用ArrayList
对数据进行多次插入、删除、修改时采用 LinkedList
ArrayList 和 Vector 的比较
Vector方法都是同步的,是线程安全的,由于同步必然会影响性能,所以ArrayList性能比Vector好。
当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%大小,这样ArrayList就有利于节约内存空间
大多数情况不使用Vector,因为性能不好,但是它支持线程同步,可以避免多线程同时写而引起的不一致
Vector可以设置增长因子,而ArrayList不可以
适用场景分析:
Vect