2016-07-27 26 views
1

我是java的新手, 我想遍歷Vector中的元素。當我使用Iterator/Enumeration接口時,我得到了相同的結果。迭代器或枚舉,我應該使用什麼?

由於Vector速度慢,因爲它是同步的。如果我使用Iterator/Enumeration是否會增強任何方面的性能?

這是我已經試過

import java.util.*; 

class vectorClass{ 
public static void main(String args[]){ 

    Vector<String> vector = new Vector<String>(); 
    vector.add("This is a vector Example\n"); 
    vector.add("This is a next line!"); 

    Enumeration en = vector.elements(); 
    while(en.hasMoreElements()){ 
     System.out.print(en.nextElement()); 
    } 

    System.out.println(); 
    Iterator en1 = vector.iterator(); 
    while(en1.hasNext()){ 
     System.out.print(en1.next()); 
    } 
} 
} 

O/P:

這是一個向量實例

這是下一行!

這是一個載體實例

這是下一行!

+0

你不應該真的使用'Vector',你應該使用'ArrayList',其中不會出現問題。 – EJP

回答

1

EnumerationIterator之間沒有性能差異。不過,我想鼓勵使用Iterator因爲Enumeration現在(從DOC)棄用:

注:此接口的功能由 Iterator接口複製。另外,Iterator添加了一個可選的刪除操作,並且具有較短的方法名稱。新的實現應該 考慮使用Iterator而不是Enumeration。

順便說一句,如果你不是被迫使用Vector,使用ArrayList替代,因爲Vector是因爲不斷同步的速度較慢,但​​仍然不是線程安全的。詳情請參閱this answer

Javadoc中,也建議使用ArrayList而不是Vector

與新集合的實現,Vector是同步的。如果 不需要線程安全實現,則建議使用ArrayList來代替Vector。