從零開始學Java系列教程(一):資料結構(Vector類)
阿新 • • 發佈:2020-12-29
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()類似 |