其实ArrayList与Vector存储方式相同,底层都是使用对象数组进行存储,但是 ArrayList查询优于Vector,但是ArrayList是非线程安全的,如果考虑多线程时,会选择使用Vector存储。
看一段案例:
使用了List接口中提供的方法,但除此只要它还自己提供了一些方法来实现元素的添加、删除等操作。
咱们现在一起来阅读一下它的源码:
其中一些方法介绍:
对于Vector整个的扩容过程,就是根据capacityIncrement确认扩容大小的,若capacityIncrement <= 0 则扩大一倍,否则扩大至capacityIncrement 。当然这个容量的最大范围为Integer.MAX_VALUE即,2^32 - 1,所以Vector并不是可以无限扩充的。
看一段案例:
使用了List接口中提供的方法,但除此只要它还自己提供了一些方法来实现元素的添加、删除等操作。
咱们现在一起来阅读一下它的源码:
Vector实现List接口,继承AbstractList类,所以我们可以将其看做队列,支持相关的添加、删除、修改、遍历等功能。
Vector实现RandmoAccess接口,即提供了随机访问功能,提供提供快速访问功能。在Vector我们可以直接访问元素。
Vector 实现了Cloneable接口,支持clone()方法,可以被克隆。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Vector提供了四个构造方法:
提供了三个成员变量:
其中一些方法介绍:
对于Vector整个的扩容过程,就是根据capacityIncrement确认扩容大小的,若capacityIncrement <= 0 则扩大一倍,否则扩大至capacityIncrement 。当然这个容量的最大范围为Integer.MAX_VALUE即,2^32 - 1,所以Vector并不是可以无限扩充的。
Vector遍历方式: