枚举接口和 Java 中的枚举有什么区别?

java 8object oriented programmingprogramming更新于 2025/9/23 1:16:17

Java 中的枚举是一种存储一组常量值的数据类型。您可以使用它们来存储固定值,例如一周中的天数、一年中的月份等。

您可以使用关键字 enum 加上枚举名称 (例如 −) 来定义枚举。

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

与数组类似,枚举中的元素/常量使用从 0 开始的数字标识。在上例中,日期使用数字标识,如下图所示。−

从枚举中检索值

您可以使用 values() 方法检索枚举的所有元素。

示例

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class EnumerationExample {
   public static void main(String args[]) {
      Days constants[] = Days.values();
      System.out.println("Value of constants: ");
      for(Days d: constants) {
         System.out.println(d);
      }
   }
}

输出

Value of constants:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

枚举接口

在 java.util 包中,Java 提供了一个名为 Enumeration 的接口。实现此接口的对象会生成一系列元素,您可以使用 nextElement() 方法从中检索元素。

Vector、HashTable 等集合都有一个名为 elements() 的方法,该方法返回一个包含集合中所有元素的枚举(接口)对象。使用此对象,您可以使用 nextElement() 方法逐个获取元素。

如果对空集合调用此方法,或者在到达集合末尾后,运行时将抛出 NosuchElementException 异常。

示例

import java.util.Enumeration;
import java.util.Vector;
public class EnumerationExample {
   public static void main(String args[]) {
      //实例化一个 Vector
      Vector<Integer> vec = new Vector<Integer>();
      //填充 Vector
      vec.add(1254);
      vec.add(4587);
      vec.add(5211);
      vec.add(4205);
      vec.add(1124);
      vec.add(8115);
      //使用枚举检索元素
      Enumeration<Integer> en = vec.elements();
      while(en.hasMoreElements()) {
         System.out.println(en.nextElement());
      }
   }
}

输出

1254
4587
5211
4205
1124
8115

相关文章