Java中ArrayList和LinkedList区别、ArrayList和Vector的区别

时间:2023-01-13 15:22:15

一般大家都知道ArrayList和LinkedList的大致区别: 

     1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 

     2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 

     3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integer。

那么ArrayList和LinkedList在性能上有什么差别呢?什么时候应该用ArrayList什么时候又该用LinkedList呢?

 

可以这样说:当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;

当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

 

ArrayList和Vector的大致区别

Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,

避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。