天天看点

ArrayList,Vector,LinkedList的区别

主要从以下几个方面来分析:

1.接口

三则都是List接口的实现类

2.内部存储的实现方式

ArrayList,Vector内部存储的实现方式是动态数组,在内存中是连续存放的,而LinkedList是以链表的方式来实现存储的,在内存中不是连续存放的。

3.从线程安全性来比较和效率

Vector的是许多方法都用synchronized来修饰(加同步锁),所以Vector是线程安全的,而ArrayList并不是同步,所以ArrayList不是线程安全,而 LinkedList也不是线程 安全的。所以ArrayList的效率会比Vector高。而在查找元素的速度上,ArrayList和Vector的效率会比LinkedList高,因为数组可以通过下标来快速定位,而链表需要遍历整 个链表。但在增加和删除的执行效率上,LinkedList会比ArrayList和Vector高,因为链表只要修改结点的指针即可,而数组需要移动大量的元素。

4.从内部增长机制来比较

在空间不足的情况下,ArrayList增加原来的50%,而Vector增加原来的一倍

继续阅读