ArrayList和Vector的区别
2015-10-08 09:34
441 查看
这两个类之间都实现了List接口,他们都是有序存储的。即存储在这两个集合中的数据都是有顺序的,都可以通过他们的位置索引号取出数据。并且数据允许重复。
(1)同步行性
Vector是线程安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的,就是它的方法之间是不同步的。如果只有一个线程访问到集合,最好是使用ArrayList,因为不用考虑线程安全问题,效率也会高一些。如果有多个线程访问,最好使用Vector,以为不需要我们去编写线程安全的代码。
备注:对于Vector&ArrayList,Hashtable&HashMap。要记住线程安全问题,记住Vector与Hashtable都是线程安全的,他们是旧的是java一诞生就有的,而ArrayList与HashMap是新的,是在java2时才有的,他们是线程不安全的。
(2)数据增长
ArrayList与Vector都有一个初始的容量大小。当存储进他们的元素的个数超过了容量时,就要增加存储空间,每次增加存储空间不只是增加一个存储空间,对于Vector默认增加为原来的两倍。对于ArrayList默认增加为原来的1.5倍。
(1)同步行性
Vector是线程安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的,就是它的方法之间是不同步的。如果只有一个线程访问到集合,最好是使用ArrayList,因为不用考虑线程安全问题,效率也会高一些。如果有多个线程访问,最好使用Vector,以为不需要我们去编写线程安全的代码。
备注:对于Vector&ArrayList,Hashtable&HashMap。要记住线程安全问题,记住Vector与Hashtable都是线程安全的,他们是旧的是java一诞生就有的,而ArrayList与HashMap是新的,是在java2时才有的,他们是线程不安全的。
(2)数据增长
ArrayList与Vector都有一个初始的容量大小。当存储进他们的元素的个数超过了容量时,就要增加存储空间,每次增加存储空间不只是增加一个存储空间,对于Vector默认增加为原来的两倍。对于ArrayList默认增加为原来的1.5倍。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统