为什么没有为ArrayList对象定义Collection Framework中的Enumeration,因为它是为Vector对象定义的?

时间:2017-11-13 20:59:07

标签: java collections

public static void main(String[] args) {

    ArrayList v1 = new ArrayList();
    v1.add(123);
    v1.add(153);
    v1.add(125);

    Enumeration en = v1.elements(); // This line gives error. 
    v1.add(4000);
    while(en.hasMoreElements())
    {
        System.out.println(en.nextElement());
    }

    System.out.println(v1);
}

为什么在ArrayList的情况下会出现错误,但在Vector的情况下却没有?

1 个答案:

答案 0 :(得分:1)

因为Enumeration是遗产类 作为VectorListCollection通常更倾向于使用Iterator来迭代它们的元素。
Iterator还提供了Enumeration无法执行的删除操作。

您可以阅读Enumeration javadoc:

  

注意:此接口的功能由   迭代器接口。此外,Iterator添加了一个可选的删除   操作,并具有较短的方法名称。新的实现应该   考虑使用Iterator优先于Enumeration。