List集合--Vector子类

List集合--Vector子类

Vector子类
  Vector是一个原始古老的程序类,这个类是在JDK1.0的时候就提供的,而后到了JDK1.2的时候,由于有一部分开发者已经习惯于使用Vector,并且许多的系统类也是基于Vector实现的,考虑到其使用的广泛性,所以类集框架将其保存下来,并且让其多实现了一个List的接口.
--观察Vector的定义结构
List集合--Vector子类

--可以发现继承结构与ArratList是相同的

 1 public class VectorDemo {
 2     public static void main(String[] args) {
 3         List<String> all = new Vector<>();
 4         all.add("hello");
 5         all.add("hello");
 6         all.add("world");
 7         all.add("test");
 8         all.forEach(System.out::println);
 9     }
10 }

--运行结果

hello
hello
world
test

Process finished with exit code 0

--进一步观察Vector类的实现:

public Vector() {
this(10);
}
public Vector(int initialCapacity) {
this(initialCapacity, 0);
}
public Vector(int initialCapacity, int capacityIncrement) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
this.capacityIncrement = capacityIncrement;
}

--Vector类如果使用的是无参的构造方法,则一定会开辟一个10个长度的数组,而后其余的实现操作与ArrayList是相同的.通过查看源代码,可以发现Vectory中的方法采用的都是Synchronized同步处理,而ArrayList中并没有进行同步处理,所以Vector中的方法在多线程访问的时候是属于线程安全的,但是性能不如ArrayList高.