AarryList LinkedList 和 vector之间的区别和联系
 谢谢了

解决方案 »

  1.   

    这三个都是 List,不过他们的实现有点区别:ArrayList 从名字上就可以看出,其内部是使用数组实现的,先默认建一个 16 个大小的数组,当往里面添加的对象超过 16 个时,其内部会进行扩充,也就是再新一个 16 * 3 / 2  长度的数组,把之前的那 16 个值拷过来。ArrayList 非常适用于添加数据的长度在一定的范围之内,另外,其内部是由数组实现的,随机访问的效率是最快的,也就是使用 get(i) 这个方法的访问速度是很快的。LinkedList 也可以从名字上看出,其内部是使用链表实现的,就是数据结构中的链表,add 一个就在链表尾部追加一个。LinkedList 适合添加数据的长度范围跨度可能会很大,由于是采用链表实现的,因此顺序访问的速度是很快的,但是随机访问的速度远远不及 ArrayListVector 这是一个同步的 List 这个类属于遗留的 API,其内部所有的方法都是同步的,相当于一个线程安全的 ArrayList,由于是遗留的类,因此现在一般只能在原来的代码中看到这个类了。目前建议使用的 ArrayList, LinkedList 都是线程不安全的,但是可以使用 Collections.synchronizedList 方法将一个 List 对象包装成为线程安全的 List 对象,这样就更灵活了吧,呵呵。 
      

  2.   

    ArrayList:数组结构,查找的时候效率较高,但新增,删除等需要移动整个数组元素,效率没有LinkedList高LinkedList:链表结构,新增修改效率很高(只需要修改节点间引用关系),查找效率不及ArrayList(要遍历整个链表)Vector:跟ArrayList类似,不同在于Vector是线程安全的
      

  3.   

    arraylist 非线程安全的   vector安全   数据增长方面  ArrayList是原来的一般  vector是原来的一倍..    LinkedLIst是双向链表的形式插入数据的...在插入时 只需知道前后的索引即可....
      

  4.   

    vector安全性高点,效率低点
    ArrayList安全性低点,效率高点
    大家为了提高效率,舍弃了那点线程安全,选择了效率……
      

  5.   

    ArrayList 是以数据的方式存放,  适合遍历,但是在增删改方便速度比LinkedList慢LinkedList 是以链表的方式存放, 适合做增删改,遍历速度比ArrayList慢Vector 是synchronized的 而ArrayList是非线程安全的,但是我们可以手动为Arralist增加线程安全.