ArrayList、LinkedList、Vector的比较
首先看一下继承类图:
这三个类都实现了List接口,List能够存放多个元素,并且能够维护元素的次序,允许元素重复。
1、ArrayList
ArrayList的底层数据结构是数组,因此在随机访问和存取上速度很快。
缺点是ArrayList随机插入和删除数据的效率较低。
ArrayList能够根据数据进行扩容,每次扩容1.5倍,将所有数据拷贝到一个扩容后的数组中。
2、Vector
Vector的底层实现和ArrayList一样也是数组,不过不同的是Vector是线程安全的,它使用了同步控制方法。
缺点:因为实现同步需要较高的花费,因此在效率上不如ArrayList。
3、LinkedList
LinkedList的底层数据结构是双向链表,因此在动态的随机插入和删除数据上效率要高。
缺点:随机访问效率较低。
因为提供了在链表两端插入和删除数据的方法,因此可以用来模拟堆栈和队列的实现。
LinkedList不是线程安全的。
以上是对这三种集合类特点的一个简单总结,在实际应用中,应当根据合适的场景选取适当的集合类。