Arraylist与Vector介绍
Arraylist与Vector介绍
ArrayList简介
ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。
继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable
ArrayList简介
ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。
继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable
Vector简介
是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。
实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。
继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。
实现了Cloneable接口,即实现clone()函数。它能被克隆。
和ArrayList不同,Vector中的操作是线程安全的。
是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。
实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。
继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。
实现了Cloneable接口,即实现clone()函数。它能被克隆。
和ArrayList不同,Vector中的操作是线程安全的。
Vector共有4个构造函数
// 默认构造函数
Vector()
// 默认构造函数
Vector()
// capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。
Vector(int capacity)
Vector(int capacity)
// capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。
Vector(int capacity, int capacityIncrement)
Vector(int capacity, int capacityIncrement)
// 创建一个包含collection的Vector
Vector(Collection<? extends E> collection)
Vector(Collection<? extends E> collection)
区别:
1、Vector 类在 java 中可以实现自动增长的对象数组,Vector是线程安全的,ArrayList不是线程安全的。
Array实现了List接口,功能与Fetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。
2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍。
Vector:对比于Array,当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长,而Array容量是定死的。
同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)当调用Vector的size()方法时,返回Vector中实际元素的个数。
Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,
得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
Vetor同时也实现了List接口,所以也可以算作Colletion了,特殊:Vector is synchronized。即Vetor对象自身实现了同步机制。
JAVA/201.html">http://www.itemperor.com/a/JAVA/201.html
1、Vector 类在 java 中可以实现自动增长的对象数组,Vector是线程安全的,ArrayList不是线程安全的。
Array实现了List接口,功能与Fetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。
2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍。
Vector:对比于Array,当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长,而Array容量是定死的。
同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)当调用Vector的size()方法时,返回Vector中实际元素的个数。
Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,
得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
Vetor同时也实现了List接口,所以也可以算作Colletion了,特殊:Vector is synchronized。即Vetor对象自身实现了同步机制。
JAVA/201.html">http://www.itemperor.com/a/JAVA/201.html
原文链接:http://www.jxszl.com/biancheng/JAVA/446553.html