知识点5:ArrayList与Vector的区别
来源:互联网 发布:中国知名网站知乎 编辑:程序博客网 时间:2024/05/29 17:16
ArrayList的底层实现都是基于Object[],因此具有数据的特性,表现在每个元素都有相应的索引值,查询数据的效率比较高。同时,相比于数组,它具有容器扩容的特性,也就是自增长机制,这使得在ArrayList时不用考虑动态规划内存空间的问题。但ArrayList是线程不安全的,在多线程开发时容易引发线程安全问题,比如数据丢失,或者不能取到相应的值等。
Vector是在JDK1.0版本中就出现的一个元老级的类,在JDK1.2版本发布时,因为注重框架的整合,因为开发了新的使用接口与实现类,比如ArrayList就是这时候的产物。在JDK1.2推出时,为了使在此之前的开发者们能够实现过渡,因此把Vector设置为Set接口的一员。它与ArrayList非常相似,同样基于Object[],同样具有自增长机制。但区别在于,Vector是线程安全的,但在性能比较方面,ArrayList的性能比Vector更高。主要原因在于:
1.Vector中使用大量的synchronized进行修饰,就是为了避免出现线程不安全的情况,但也正因为如此,因为涉及多重的判断及线程阻塞问题,所以它的性能就被拉低了。
2.两个类的自增长方式不一样,当空间不足时,Vector会增加原来空间的一倍,而ArrayList增加原来控件的50%。在同等条件下,ArrayList的扩容量小于Vector,也会更节约内存空间,因此性能自然会有所提高。
下一篇:常见的排序算法:敬请期待
0 0
- 知识点5:ArrayList与Vector的区别
- ArrayList与Vector的区别
- ArrayList与Vector的区别
- ArrayList与Vector的区别
- Vector 与ArrayList的区别
- ArrayList与Vector的区别
- Vector 与 ArrayList 的区别
- Vector与ArrayList的区别
- ArrayList与Vector的区别
- Vector与ArrayList的区别
- ArrayList与Vector的区别
- ArrayList与Vector的应用与区别
- Vector与ArrayList区别
- ArrayList与Vector区别
- Vector与ArrayList区别
- ArrayList与Vector区别
- Vector与ArrayList区别
- Vector与ArrayList区别
- 动态生成HTML事件不生效解决办法
- Android studio 依赖库版本跟编译器版本冲突
- [李景山php] linux课程--目录介绍
- IDEA IntelliJ 快捷键大全
- eclipse自动下载源代码
- 知识点5:ArrayList与Vector的区别
- QDU 帅气的HYC迷路了(简单搜索+小小模拟)
- 《灵契》动画安利
- [李景山php] Linux课程-vim
- Java多态性理解
- Android之Monkey环境搭建
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保...
- Android测试,Android Studio中的单元测试、UI测试和自动化测试使用说明第一篇
- [李景山php] linux课程 -vim 2