Vector子类 | 带你学《Java语言高级特性》之一百零三

上一篇: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子类 | 带你学《Java语言高级特性》之一百零三
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的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:Set接口 | 带你学《Java语言高级特性》之一百零四
更多Java面向对象编程文章查看此处

上一篇:TreeSet子类排序操作 | 带你学《Java语言高级特性》之一百零五


下一篇:高可用Hadoop平台-Flume NG实战图解篇