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

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

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

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

3.扩容字段  capacityIncrement    

正常状况下扩容机制为新的集合大小 = 原来的集合大小+capacityIncrement  ,这个与ArrayList不一样;安全

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

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

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

 

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

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

相关文章
相关标签/搜索