Vector和ArrayList的比较
来源:互联网 发布:泡面怎么吃才健康 知乎 编辑:程序博客网 时间:2024/05/21 06:48
今天研究了一下Vector和ArrayList的源码,又加深了对这两个类的理解。
List接口下一共实现了三个类:ArrayList,Vector,LinkedList。LinkedList就不多说了,它一般主要用在保持数据的插入顺序的时候。ArrayList和Vector都是用数组实现的,主要有这么三个区别:
1、Vector是多线程安全的,而ArrayList不是,这个可以从源码中看出,Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;
2、两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的,很多网友说Vector增加原来空间的一倍,ArrayList增加原来空间的50%,其实也差不多是这个意思,不过还有一点点问题可以从源码中看出,一会儿从源码中分析。
3、Vector可以设置增长因子,而ArrayList不可以,最开始看这个的时候,我没理解什么是增量因子,不过通过对比一下两个源码理解了这个,先看看两个类的构造方法:
ArrayList有三个构造方法:分别是
Vector有四个构造方法:
Vector比Arraylist多一个构造方法,没错就是public Vector(int initialCapacity,int capacityIncrement)这个构造方法,capacityIncrement就是容量增长,即前面所说的增长因子,ArrayList中是没有的。
再贴出两个类的添加源码分析下(jdk1.7版本):ArrayList类:
Vector类:
0 0
- ArrayList和Vector的比较
- ArrayList和Vector的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- ArrayList 和 Vector 比较
- Vector和ArrayList比较
- 比较Vector和ArrayList的不同
- 比较Vector和ArrayList的不同
- 比较Vector和ArrayList的不同
- Java中Vector和Arraylist的比较
- 【集合】ArrayList和Vector的比较总结
- Java中的Vector和ArrayList的比较
- hive udf使用
- hmm 隐马尔可夫——代码应用
- oracle 域索引创建及维护
- 转载自http://blog.csdn.net/zhengzhihust/article/details/44151785
- android-设备信息工具类
- Vector和ArrayList的比较
- iOS之GIF动画文件的播放
- Android应用的闪退(crash)分析
- Java中long型转float型那点事
- swiper的基础使用(十三)
- Java代码质量检查工具及使用案例
- 相除保留一位小数
- 1.1字符串旋转--左移,右移x位置--三步反转
- iOS UI篇10- Storyboard(多个Storyboard的连接)