Java基础复习-----集合Vector

 ̄綄美尐妖づ 提交于 2020-02-28 21:04:41
Vector与ArrayList差不多,只不过Vector是线程安全,这也意味着性能会比ArraList差
1、定义    与ArrayList继承、实现接口都一样

2.内部使用数组对象进行存储

使用无参构造方法初始化时,数组大小默认为10 ;这一点与ArrayList不同,ArrayList使用无参构造方法初始化默认为空数组,大小为0;

3.扩容字段  capacityIncrement    

正常情况下扩容机制为新的集合大小 = 原来的集合大小+capacityIncrement  ,这个与ArrayList不同;

ArrayList采用扩容机制为 新的集合大小 = 原来的集合大小+  原来的集合大小/2  

 int newCapacity = oldCapacity + (oldCapacity >> 1);

4.部分方法    setSize()  改变Vector的集合大小,如果newSize大于Vector实际大小会进行Vector扩容,相反,会抛弃newSzie位置索引(包括newSize位置)之后的元素

 

Vector中大部分方法都如上使用synchronized关键字,进行线程同步,所以性能会比ArrayList差;因为ArrayList是非线程安全的;如果要使用线程安全的List,推荐使用 Collections.synchronizedList(list)内部也使用synchronized关键字,只不过

synchronized锁住的对象锁,而不是方法;


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!