枚举接口和 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

