Java 枚举是否仅在旧式集合框架类中有效?

Java 枚举是否仅在旧式集合框架类中有效?,java,collections,stack,enumeration,Java,Collections,Stack,Enumeration,是否有人可以确认枚举仅适用于旧式集合框架类 我尝试使用枚举来检索向量和堆栈的元素,它是有效的 Stack<Integer> stack=new Stack<Integer>(); stack.add(5); stack.add(9); System.out.println(stack); Enumeration<Integer> enumeration=stack.elements(); while (enumerati

是否有人可以确认
枚举
仅适用于旧式集合框架类

我尝试使用
枚举
来检索
向量
堆栈
的元素,它是有效的

Stack<Integer> stack=new Stack<Integer>();
    stack.add(5);
    stack.add(9);
    System.out.println(stack);
    Enumeration<Integer> enumeration=stack.elements();
    while (enumeration.hasMoreElements()) {
        Integer integer = (Integer) enumeration.nextElement();
        System.out.println(integer);
    }
Stack Stack=新堆栈();
堆栈。添加(5);
添加(9);
System.out.println(堆栈);
枚举=stack.elements();
while(枚举.hasMoreElements()){
整数=(整数)枚举.nextElement();
System.out.println(整数);
}
但当我在
集合上尝试此功能时,它不起作用。因此,我对
Enumeration
是否仅适用于遗留集合框架类或
Enumeration
是否适用于任何类感到困惑

当我在集合中尝试时,它不起作用

假设您的意思是,该接口没有返回
枚举
对象的方法,因此它不起作用也就不足为奇了

我还将假设,既然您谈论的是遗留软件,那么您确实了解和



这里做了很多假设。

最近的Java集合有自己的迭代器,可以完成类似的工作。您还可以使用foreach循环之类的方法来简化工作。

枚举不仅适用于旧的集合框架类,还适用于其他集合框架类。 在使用堆栈或向量时,我们可以像这样直接枚举

Stack<Integer> stack=new Stack<Integer>();
        stack.add(5);
        stack.add(9);
        System.out.println(stack);
        Enumeration<Integer> enumeration=stack.elements();
        while (enumeration.hasMoreElements()) {
            Integer integer = (Integer) enumeration.nextElement();
            System.out.println(integer);
        }
        Vector<Integer> vector=new Vector<Integer>();
        vector.add(5);
        vector.add(9);
        System.out.println(vector);
        Enumeration<Integer> enumeration2=vector.elements();
        while (enumeration2.hasMoreElements()) {
            Integer integer = (Integer) enumeration2.nextElement();
            System.out.println(integer);
        }
Stack Stack=新堆栈();
堆栈。添加(5);
添加(9);
System.out.println(堆栈);
枚举=stack.elements();
while(枚举.hasMoreElements()){
整数=(整数)枚举.nextElement();
System.out.println(整数);
}
向量=新向量();
向量。添加(5);
向量。添加(9);
System.out.println(向量);
枚举枚举2=vector.elements();
while(枚举2.hasMoreElements()){
整数=(整数)枚举2.nextElement();
System.out.println(整数);
}
但是,当我们使用集合框架类(如HashSet、ArrayList等)时,我们可以通过将集合的对象作为参数传递给向量或堆栈构造函数来枚举

Set<Integer> set=new HashSet<Integer>();
        set.add(6);
        set.add(7);
        System.out.println(set);
        Enumeration<Integer> enumeration3=new Vector(set).elements();
        while (enumeration3.hasMoreElements()) {
            Integer integer = (Integer) enumeration3.nextElement();
            System.out.println(integer);
        }
        List<Integer> list=new ArrayList<Integer>();
        list.add(12);
        list.add(23);
        System.out.println(list);
        Enumeration<Integer> enumeration4=new Vector(list).elements();
        while (enumeration4.hasMoreElements()) {
            Integer integer = (Integer) enumeration4.nextElement();
            System.out.println(integer);
        }
Set Set=newhashset();
增加(6);
增加(7);
系统输出打印项次(套);
枚举3=新向量(集合).elements();
while(枚举3.hasMoreElements()){
整数=(整数)枚举3.nextElement();
System.out.println(整数);
}
列表=新的ArrayList();
增加(12);
增加(23);
系统输出打印项次(列表);
枚举4=新向量(列表).elements();
while(枚举4.hasMoreElements()){
整数=(整数)枚举4.nextElement();
System.out.println(整数);
}

<代码>显示失败的代码。“代码>什么是不工作?<代码> >注意:此接口的功能由迭代器接口复制。此外,迭代器添加了可选的移除操作,并且具有更短的方法名称。新的实现应考虑优先使用迭代器来枚举。阅读文档是最基本的。我能纠正/改进什么?@rajeev问了一个更清楚的问题……这与
集合上的
枚举
无关。如何将元素放入
向量
,并不重要,但这就是
向量
对象上的
枚举