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

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

2016-03-23 00:00 489 查看
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锁住的对象锁,而不是方法;



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: