区别一:实现原理不同
ArrayList和Vector是可以自动扩容的数组,LinkedList是一种双向链表结构
什么是双向链表?
链表存储的是一个个的节点,从当前位置既能指向上一个节点又能定位到下一个节点的链表称为双向链表,相应的,只能指向下一个节点,不能回到上一个节点的链表称为单向链表
区别二:元素的查询效率和插入删除效率不同
ArrayList和Vector通过数组下标快速定位到所需元素,效率非常高,而LinkedList在查询元素时,需要进行遍历,效率低下;
在插入或者删除元素时,两者刚好相反,LinkedList的效率要高一些
区别三:线程安全性不同
只有Vector是线程安全的,查看Vector类源码可以看出,所有方法都有加同步锁synchronized