A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 满兴旺 中级黑马   /  2014-4-24 23:03  /  1001 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ArrayList和Vector的比较
       
        毕老师在20天17讲12.45讲到vector效率低为什么?请同学们指点一下,谢谢

5 个回复

倒序浏览
Vector是线程安全的,欢句话说在底层实现的时候,还要同步的来实现的,就相当于加了多线程并发的时候加了锁的机制,所以性能上自然就不是很好啦,而ArrayList是非线程安全的,所以性能略高,但是即使处理并发的话我们一般也会用后者,因为集合中提供了集合工具类来处理线程的并发
回复 使用道具 举报

1.ArrayList属于List类,底层是数组结构,但是是非同步的,它允许对元素进行快速随机访问。它替代了Vector,基于是数组结构的通病,他的增删操作依旧很慢,但是他的查询速度很快。因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector也属于List类,底层也是数组结构,不过是要求线程的同步,这就使得在一个特定的时间段只允许一个线程去访问Vector,当然这有有点也有缺点,缺点就是他的同步性造成的无论是增加还是删除,还是查询操作都很慢,而且是被淘汰了的
回复 使用道具 举报 1 0
Vector 是同步的 ArrayList是不同步的
回复 使用道具 举报
Vector同步肯定牵扯到锁的问题 每次进入都要判断锁 所以效率会低点(相比ArrayList来说)
回复 使用道具 举报
路过学习学习~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马