一分钟了解ArrayList和Vector的区别
一、是否是线程安全的
Vector是同步的, 而ArrayList不是.
因为Vector是同步的, 所以它是线程安全的.
同样, 因为Vecotr是同步的, 所以他需要额外的开销来维持同步锁, 所以它要比ArrayList要慢.但仅仅是理论上说,具体测试结果二者差别十分不明显
二、动态增加元素的过程
Vector允许用户设置capacityIncrement这样在每次需要扩充数组的size的时候, Vector会尝试按照预先设置的capacityIncrement作为增量来设置, 而ArrayList则会把数组的大小扩大一倍.
比如现在同样一个长度为10的Vector和ArrayList, 我们把Vector的capacityIncrement设为1
那么我们在插入第11个对象的时候, Vector会将长度变成11, 然后分配空间, 然后将对象添加进去, 而ArrayList则会分配20个对象的空间, 然后将对象添加进去.
如果capacityIncrement设为0或者负值, Vector就会做和ArrayList一样, 每次都将数组大小扩大一倍.
参考自:
http://blog.csdn.net/fzh0803/article/details/6312005
一分钟了解ArrayList和Vector的区别相关推荐
- ArrayList和Vector的区别
这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素, ...
- ArrayList 和 Vector 的区别
ArrayList 和 Vector 的区别是什么? Vector 的方法都是同步的,线程安全:ArrayList 非线程安全,但性能比Vector好 默认初始化容量都是10,Vector 扩容默认会 ...
- Java中ArrayList和Vector的区别
首先想说的是: Vector是在Collections API之前就已经产生了的, 而ArrayList是在JDK1.2的时候才作为Collection framework的一部分引入的. 它们都是在 ...
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...
ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...
- ArrayList与LinkedList、Vector的区别 HashMap与HashTable、HashSet的区别
一.ArrayList 和 LinkedList区别: (1)两者都是线程不安全,都实现了Collection接口. (2)数据结构:ArrayList是基于动态数组的数据结构,LinkedList是 ...
- ArrayList和Vector的异同
这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素, ...
- Java-ArrayList和Vector的区别
这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素, ...
- ArrayList 和 Vector 的区别是什么?
首先两个类都实现了List接口.他们都是有序不唯一的集合,说白了就是存储元素的位置是有序的(每一个元素都以一个对应的索引),相当于一个动态数组 ArrayList和Vector的区别,主要包括两个方面 ...
- ArrayList和Vector有什么区别?
本文翻译自:What are the differences between ArrayList and Vector? 两个数据结构ArrayList和Vector之间有什么区别,你应该在哪里使用它 ...
最新文章
- Ubuntu安装Flash视频插件
- Redis 5种数据结构
- npm WARN install Refusing to install vue-router as a dependency of itself
- 网页上加在线客服代码QQ,MSN,skype,goolge TALK,雅虎通,贸易通,淘宝旺旺
- SAP发布S4/HANA 意义超过R3
- 安装linux桌面总结
- vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
- java 课后习题 键入日期输入星期几
- 【剑指offer】35、复杂链表的复制
- C#调用Microsoft.DirectX.DirectSound问题记录及解决
- 彪悍榴莲姐再袭 这次一口气吃掉10斤
- R语言data manipulation学习笔记之创建变量、重命名、数据融合
- pe下修复linux磁盘分区,找回丢失的Linux分区及Grub修复过程
- mac的python换字体_Python -mac-画图及设置坐标中文字体
- 【JZOJ4598】准备食物
- 关于在VM安装CentOS的经验总结
- spark开发及调优
- sqlserver实现抽奖Demo
- subversion的配置与使用
- C/C++ 假币问题
热门文章
- 初探GNN-文本表示学习
- 调剂2002年计算机科学与技术,教育部关于做好2002年全国研究生录取工作的通知...
- python简单的爬虫教程中召唤小海龟_Python练习,网络小爬虫(初级)
- 天翼云从业认证课后习题(第四章云场景化解决方案综合应用)
- 【架构】互联网架构三马车:微服务+消息队列+定时任务
- openssl 生成证书相关符号意义
- 笔记-中项案例题-2018年上-整体管理
- IDEA中双击两下shift全局搜索怎样取消和修改
- Webservice开发之xsd文件示例代码
- 手机访问同局域网下的PC中Tomcat中的项目