List集合的常用实现【LinkedList,ArrayList和Vector(Vector基本过时)】
一、 ArrayList
ArrayList和Vector底层的数据结构都是可变长数组数据结构。
所以其是查询(获取元素)效率较高(只要明确元素角标就能直接拿到对应的元素);
其删除和添加元素的效率较低(当添加元素时,添加的元素位置之后的所有元素都要一个一个后移,删除元素的时候,删除的元素位置之后的元素都要一个一个前移)。
区别:
1)ArrayList是线程不安全的,其在操作数据的时候不需要同时处理线程安全问题,所以执行效率高;
Vector是线程安全的,其在操作数据时还要同时处理线程安全问题,所以执行效率较低。
2)Vector基本过时被淘汰了,使用的基本都是ArrayList;ArrayList的线程不安全的问题交由多线程技术去处理。
二、 LinkedList:
链表式数据结构,是通过后面的元素去记录其前面的元素的地址而构成的一个链表。
Linked
LinkedList因为其底层是链表式数据结构,所以其添加和删除操作效率较高(因为添加和删除元素只需要改变元素的指向地址);查询效率较低(因为其检索某个元素都是从头至尾去检索的)。