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锁住的对象锁,而不是方法;
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锁住的对象锁,而不是方法;
相关文章推荐
- Java基础-----集合工具类Collections
- 万年历的编写(java)
- eclipse 打开文件所在文件夹插件OpenExplorer
- Java中HashMap和HashTable区别
- maven 下载 按装 Eclipse配置
- Java四种线程池的使用
- 非常重要 却被世人忽略的Java基础知识
- Spring AOP实现原理
- 初探Java字符串
- Spring之AOP
- 由数据库的隔离级别到spring对数据库的事物控制
- java并发基础知识
- Map to bean的一个java实现
- java注解小实例
- String in java
- final in java
- Struts2框架提供的结果类型
- java jdbc线程池的使用
- 实现一个注解接口
- 使用Struts 2开发应用03:依赖注入