Vector
vector是jdk1.0引入的,底层实现也是可变长数组,和arraylist类似,其区别如下:
- vector是线程安全的,对外暴露的方法几乎都加了sychronized关键字
- 扩容时默认扩充原数组大小的一倍,而arrayList一次扩容0.5倍
类定义
与arraylist定义一致,继承了abstractList类,实现了list、randomaccess、cloneable、serializable接口。
1 |
|
成员变量
1 | //用于存储数据的数组 |
构造方法
1 | //初始化传入初始容量和扩容容量 |
扩容逻辑
1 | //默认最大容量2的31次方-8 |
elements
该方法返回一个Enumeration,类似迭代器,区别在于iterator可以修改数据(remove方法),而enumeration不能,iterator支持fail-fast机制,enumerator不支持
1 | public Enumeration<E> elements() { |
其他
vector其他方法与arraylist类似,但是大部分添加了sychronized关键字进行同步,该类目前已弃用,了解一下就好
Stack
stack类实现了栈的功能,即先进后出,也是线程安全的。
类定义
继承了Vector类
1 |
|
重要方法
实现了peek、pop、push等常用方法
1 | //添加元素 |