Vector、ArrayList和LinkedList
2018-04-01 21:30
274 查看
List中元素有序,且是可以重复的。(有序是指元素存入的先后顺序与输出的先后顺序是一致的)
Vector
内部是数组数据结构,是线程安全的。是最早出现的list接口(现在几乎不怎么使用)。Vector是百分百延长数组,即新数组的长度是原来数组长度的2倍。
ArrayList
内部是数组结构,是线程不安全的。替代了Vector,遇到多线程情况,可以通过加锁来实现线程安全。ArrayList是百分之五十延长,即新数组的长度是原来数组长度的1.5倍,效率比Vector高,浪费空间较少。查询速度快。(ArrayList使用new操作初始化时会构造一个初始容量为10的空列表, ArrayList中add方法添加的都是Object,可以添加任何类型的对象,但是最终都会被提升为Object类型,因此在取出元素时,需要进行类型的强转,即Object类型转换为本来的类型)
LinkedList
内部是链表结构的,是线程不安全的,但是效率高。List中除了Vector都是不安全的。增删元素特别快。
注意:
数组长度可变的原理是创建一个新数组,将原来的数组内容复制到新数组中去,增加数组的长度。
ArrayList和LinkedList的查询功能都是从第一个元素开始,但是ArrayList中所有元素是存储在同一内存区的,遍历速度快,而LinkedList中的所有元素并不是存储在同一内存区,所以速度很慢。
Vector
内部是数组数据结构,是线程安全的。是最早出现的list接口(现在几乎不怎么使用)。Vector是百分百延长数组,即新数组的长度是原来数组长度的2倍。
ArrayList
内部是数组结构,是线程不安全的。替代了Vector,遇到多线程情况,可以通过加锁来实现线程安全。ArrayList是百分之五十延长,即新数组的长度是原来数组长度的1.5倍,效率比Vector高,浪费空间较少。查询速度快。(ArrayList使用new操作初始化时会构造一个初始容量为10的空列表, ArrayList中add方法添加的都是Object,可以添加任何类型的对象,但是最终都会被提升为Object类型,因此在取出元素时,需要进行类型的强转,即Object类型转换为本来的类型)
LinkedList
内部是链表结构的,是线程不安全的,但是效率高。List中除了Vector都是不安全的。增删元素特别快。
注意:
数组长度可变的原理是创建一个新数组,将原来的数组内容复制到新数组中去,增加数组的长度。
ArrayList和LinkedList的查询功能都是从第一个元素开始,但是ArrayList中所有元素是存储在同一内存区的,遍历速度快,而LinkedList中的所有元素并不是存储在同一内存区,所以速度很慢。
相关文章推荐
- ArrayList、Vector、LinkedList的区别及其优缺点?
- Vector,ArrayList,LinkedList的区别与适用场景
- ArrayList、Vector、LinkedList的异同点
- 阐述ArrayList、Vector、LinkedList的存储性能和特性?
- ArrayList、Vector、LinkedList的区别及其优缺点? (转载)
- ArrayList,Vector, LinkedList的存储性能和特性
- ArrayList、Vector、LinkedList的区别及其优缺点?
- ArrayList、Vector和LinkedList
- ArrayList,Vector, LinkedList的存储性能和特性
- LinkedList、ArrayList和Vector的区别
- Vector,ArrayList与LinkedList
- List的子类ArrayList .Vector , LinkedList的特点
- Vector,ArrayList, Linkedlist的区别
- ArrayList、Vector、LinkedList的区别及其优缺点?
- Java集合(2)——深入理解ArrayList、Vector和LinkedList
- ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的区别
- ArrayList,Vector, LinkedList的存储性能和特性
- ArrayList,Vector,LinkedList
- ArrayList,Vector, LinkedList的存储性能和特性
- Java 当中ArrayList, Vector, LinkedList