ArrayList、LinkedList、Vector的比较

版权声明:未经允许禁止转载 https://blog.csdn.net/weixin_38481963/article/details/87872726

首先看一下继承类图:
在这里插入图片描述
这三个类都实现了List接口,List能够存放多个元素,并且能够维护元素的次序,允许元素重复。

1、ArrayList

ArrayList的底层数据结构是数组,因此在随机访问和存取上速度很快。
缺点是ArrayList随机插入和删除数据的效率较低。
ArrayList能够根据数据进行扩容,将所有数据拷贝到一个扩容后的数组中。

2、Vector

Vector的底层实现和ArrayList一样也是数组,不过不同的是Vector是线程安全的,它使用了同步控制方法。
缺点:因为实现同步需要较高的花费,因此在效率上不如ArrayList。

3、LinkedList

LinkedList的底层数据结构是双向链表,因此在动态的随机插入和删除数据上效率要高。
缺点:随机访问效率较低。
因为提供了在链表两端插入和删除数据的方法,因此可以用来模拟堆栈和队列的实现。
LinkedList不是线程安全的。

以上是对这三种集合类特点的一个简单总结,在实际应用中,应当根据合适的场景选取适当的集合类。

猜你喜欢

转载自blog.csdn.net/weixin_38481963/article/details/87872726