上一篇:LinkedList子类 | 带你学《Java语言高级特性》之一百零二
【本节目标】
本节介绍了Vector子类的操作方法以及了解Vector子类与ArrayList子类的区别。
Vector子类
Vector是一个原始古老的程序类,这个类是在JDK1.0时提供的。到了JDK1.2时由于许多开发者已经习惯于使用Vector,并且许多系统类也是基于Vector实现的,考虑到其使用的广泛性,所以类集框架将其保留了下来,并让其多实现了一个List接口,观察Vector的定义结构:
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
继承结构与ArrayList是相同的,所以来讲这个类继承结构如下。
Vector继承结构
范例:Vector类使用
import java.util.List;
import java.util.Vector;
public class JavaAPIDemo {
public static void main(String[] args) throws Exception {
List<String> all = new Vector<String>();
all.add("Hello");
all.add("Hello");
all.add("Wolrd");
all.add("MLDN");
all.forEach(System.out::println); // Hello Hello World MLDN
}
}
下面可以进一步的观察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是相同的。通过源代码分析可以发现,Vector类中的操作方法采用的都是synchronized同步处理,而ArrayList并没有进行同步处理,所以Vector类中的方法在多线程访问的时候属于线程安全的,但是性能不如ArrayList高。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学