黑马程序员技术交流社区

标题: ArrayList和Vector的比较 [打印本页]

作者: 满兴旺    时间: 2014-4-24 23:03
标题: ArrayList和Vector的比较
ArrayList和Vector的比较
       
        毕老师在20天17讲12.45讲到vector效率低为什么?请同学们指点一下,谢谢

作者: 晴天_SH    时间: 2014-4-24 23:35
Vector是线程安全的,欢句话说在底层实现的时候,还要同步的来实现的,就相当于加了多线程并发的时候加了锁的机制,所以性能上自然就不是很好啦,而ArrayList是非线程安全的,所以性能略高,但是即使处理并发的话我们一般也会用后者,因为集合中提供了集合工具类来处理线程的并发
作者: 宋美成    时间: 2014-4-25 00:17

1.ArrayList属于List类,底层是数组结构,但是是非同步的,它允许对元素进行快速随机访问。它替代了Vector,基于是数组结构的通病,他的增删操作依旧很慢,但是他的查询速度很快。因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector也属于List类,底层也是数组结构,不过是要求线程的同步,这就使得在一个特定的时间段只允许一个线程去访问Vector,当然这有有点也有缺点,缺点就是他的同步性造成的无论是增加还是删除,还是查询操作都很慢,而且是被淘汰了的
作者: 微笑=.一瞬间    时间: 2014-4-25 20:46
Vector 是同步的 ArrayList是不同步的

作者: 微笑=.一瞬间    时间: 2014-4-25 20:54
Vector同步肯定牵扯到锁的问题 每次进入都要判断锁 所以效率会低点(相比ArrayList来说)
作者: 酱油炒饭    时间: 2014-4-26 00:08
路过学习学习~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2