gzyueqian
13352868059

粤嵌Java教程:ArrayList和Vector的区别

更新时间: 2018-07-20 14:52:55来源: 粤嵌教育浏览量:4592

  我们在学习Java教程的时候,会遇到ArrayList和Vector,一部分对对于这两者经常会混淆,因此粤嵌从它们的同步性和数据增长两个方面对其进行区分,供参考:

  (1)同步性:

  Vector 是线程安全的,也就是说是它的方法之间是线程同步的,而 ArrayList 是线程序不安全的,它的方法之间是线程不同步的。

  如果只有一个线程会访问到集合,那是使用ArrayList,因为它不考虑线程安全,效率会高些;

  如果有多个线程会访问到集合,那是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。

  (2)数据增长:

  ArrayList 与 Vector都有一个初始的容量大小,当存储进它们里面的元素的个数超过了容量时,就需要增加ArrayList 与 Vector 的存储空间,每次要增加存储空间时,不是只增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间利用与程序效率之间要取得一定的平衡。

  Java教程中Vector则默认增长为原来两倍,而 ArrayList 的增长策略在文档中没有明确规定(从源代码看到的是增长为原来的1.5倍)。

  ArrayList 与 Vector 都可以设置初始的空间大小,Vector 还可以设置增长的空间大小,而 ArrayList 没有提供设置增长空间的方法。即 Vector 增长原来的一倍,ArrayList 增加原来的0.5倍。

  现在大家对ArrayList和Vector的区别应该有了大致的认识,如果还没有搞清楚用法,建议大家来粤嵌接受专业Java教程的指导,让自己的实力稳步提高,从而脱颖而出。




免费预约试听课