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


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() 的方法,它返回一个包含集合中所有元素的 Enumeration(接口)对象。使用此对象,您可以使用 nextElement() 方法逐个获取元素。

如果在空集合上调用此方法,或者在到达集合末尾后调用此方法,则会在运行时生成 NosuchElementException。

示例

import java.util.Enumeration;
import java.util.Vector;
public class EnumerationExample {
   public static void main(String args[]) {
      //instantiating a Vector
      Vector<Integer> vec = new Vector<Integer>( );
      //Populating the vector
      vec.add(1254);
      vec.add(4587);
      vec.add(5211);
      vec.add(4205);
      vec.add(1124);
      vec.add(8115);
      //Retrieving the elements using the Enumeration
      Enumeration<Integer> en = vec.elements();
      while(en.hasMoreElements()) {
         System.out.println(en.nextElement());
      }
   }
}

输出

1254
4587
5211
4205
1124
8115

更新于: 2019年8月7日

1K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告