关于ArrayList和LinkedList的区别以及ArrayList和Vector区别
1、ArrayList是实现了基于动态数组的数据结构,LinkedList是实现了基于链表的数据结构。
2、ArrayList使用时需要在堆中开辟连续完整的内存空间,所以可以如果进行增删操作会造成内存搬移,效率低下,但是可以通过下标找到元素所有查询很快。
而LinkedList不需要开辟连续完整的内存空间,而是通过地址指向,所以如果进行查询的操作,需要一个一个向后找,效率低下,但是进行增删操作只需要改变地址指向。
3、两者都是基于动态数组的数据结构,因Vector是线程(Thread)同步(Synchronized)的也就是多线程的时候在一个线程里面迭代时另一个线程去修改Vector的结构会抛出异常,而Arraylist是线程异步(ASynchronized)的,是不安全的。如果不考虑到线程的安全因素,一般用Arraylist效率比较高。