1. 程式人生 > 其它 >從零開始學Java系列教程(一):資料結構(Vector類)

從零開始學Java系列教程(一):資料結構(Vector類)

技術標籤:JavaSEjava資料結構

Vector類

Vector類是List介面的實現類,而List介面是Collection的子介面,因此Vector類可以使用List介面和Collection介面的所有方法。

Vector類和ArrayList類的用法幾乎一模一樣,底層都是採用了陣列結構,很多情況下可以互用。只不過Vector類的方法都加了同步檢查,因此“執行緒安全,效率低”。

比如:add(E e)方法就增加了synchronized同步標記。

相比較於ArrayList,Vector還包含了許多傳統的方法,雖然這些方法不屬於集合框架。

Vector類演示:

public class Test {
	public static void main(String[] args) {
		// 例項化一個Vector
		Vector<String> vector = new Vector<String>();
		// 新增元素,addElement()方法和add()方法類似
		vector.addElement("java");
		vector.addElement("HTML");
		vector.addElement("JavaScript");
		vector.addElement("CSS");
		// 遍歷集合, elements()方法類似於iterator()方法
		Enumeration<String> elements = vector.elements();
		while(elements.hasMoreElements()) {
			System.out.println(elements.nextElement());
		}
	}
}

【新手建議】如何選用ArrayList、LinkedList、Vector?

需要保證執行緒安全時,建議選用Vector。

不存線上程安全問題時,並且查詢較多用ArrayList(一般使用它)。

不存線上程安全問題時,增加或刪除元素較多用LinkedList。

注意:現實開發中,我們常用ArrayList集合,很少使用Vector集合。


Vector類的傳統方法:

public synchronized void addElement(E obj) --> 此方法的作用和add(E element)類似

public Enumeration<E> elements() --> 此方法的作用和iterator()類似

boolean hasMoreElements(); --> 此方法的作用和hasNext()類似

E nextElement(); --> 此方法的作用和next()類似