您的位置:首页 > 编程语言 > Java开发

ArrayList和Vector的区别

2015-10-08 09:34 441 查看
这两个类之间都实现了List接口,他们都是有序存储的。即存储在这两个集合中的数据都是有顺序的,都可以通过他们的位置索引号取出数据。并且数据允许重复。

(1)同步行性

      Vector是线程安全的,也就是说它的方法之间是线程同步的,而ArrayList是线程不安全的,就是它的方法之间是不同步的。如果只有一个线程访问到集合,最好是使用ArrayList,因为不用考虑线程安全问题,效率也会高一些。如果有多个线程访问,最好使用Vector,以为不需要我们去编写线程安全的代码。

备注:对于Vector&ArrayList,Hashtable&HashMap。要记住线程安全问题,记住Vector与Hashtable都是线程安全的,他们是旧的是java一诞生就有的,而ArrayList与HashMap是新的,是在java2时才有的,他们是线程不安全的。

(2)数据增长

    ArrayList与Vector都有一个初始的容量大小。当存储进他们的元素的个数超过了容量时,就要增加存储空间,每次增加存储空间不只是增加一个存储空间,对于Vector默认增加为原来的两倍。对于ArrayList默认增加为原来的1.5倍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Vector ArrayList