ArrayList、LinkedLIst、Vector
同: 三个类都实现了List接口;
不同:
ArrayList
ArrayList:底层为Object[] elementdata数组;
ArrayList :初始化容量为10;jdk1.7以前扩容为原数组大小的1.5+1;
ArrayList:为同步,在多线程的情况不适用
ArrayList:随机访问和遍历元素时,提供了更好的性能;
LinkedList
LinkedList: 底层为双链表;
LinkedList: 没有初始化大小,也没有扩容机制。
LinkedList:该类实现List接口,允许有null元素,主要用于创建链表数据结构,该类没同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是创建List时候构造一个同步List.
LinkedList:查找效率低,添加和删除数据比较快,随机增删效率高;
Vector
该类和ArrayList非常相似默认长度也是10;底层也是使用Object[] elementData数组。但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。