Vector、ArrayList和LinkedList的异同

Vector、ArrayList和LinkedList的异同

    Vector、ArrayList、LinkedList都是List集合的实现类,那他们到底有什么不同呢?

    从底层结构上来看:

      Vector、ArrayList的底层是数组,在执行增加和删除操作时,后面的元素要逐个移动;

      而LinkedList底层是双向链表,在执行增加和删除操作时,是由指针直接操作,效率更高

      因此,ArrayList更多用于查询,而LinkedList更多用于删除、添加

    在线程安全上:

      ArrayListLinkedList不是线程安全的。而Vector线程安全

    初始容量上:

      ArrayList初始容量是10,且按1.5倍扩容;Vector初始容量也是10,但按2倍扩容;LinkedList由于底层的双向链表结构,不存在初始容量和扩容的说法

    从访问方法上来看:

      由于ArrayList是基于数组的,所以可以通过索引值的方式来定位元素的位置

      而LinkedList只能通过指针慢慢查找

    

原文地址:https://www.cnblogs.com/javaisbest/p/11795444.html