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

Vector与ArrayList差不多,只不过Vector是线程安全,这也意味着性能会比ArraList差
1、定义    与ArrayList继承、实现接口都一样

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

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

Java基础复习-----集合Vector_第1张图片

3.扩容字段  capacityIncrement    

Java基础复习-----集合Vector_第2张图片

正常情况下扩容机制为新的集合大小 = 原来的集合大小+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锁住的对象锁,而不是方法;

Java基础复习-----集合Vector_第3张图片


你可能感兴趣的:(Java基础复习-----集合Vector)