2016-07-27 29 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。