background image

枚举(enum

我们所定义的每个枚举类型都继承

java.lang.Enum 

,枚举

中的每个成员默认都是 public static final

 

的。 而每个枚举的成员其实就是

您定义的枚举类型的一個实例

public final int ordinal()返回枚举常量的序数(它在枚举声明中的位

置,其中初始常量序数为零)。 大多数程序员不会使用此方法。它被

设计用于复杂的基于枚举的数据结构.
public final int compareTo(

E

 o)比较此枚举与指定对象的顺序。在

该对象小于、等于或大于指定对象时,分别返回负整数、零或正整数。 

枚举常量只能与相同枚举类型的其他枚举常量进行比较。该方法实现的

 

自然顺序就是声明常量的顺序。

public static E[] values():返回一个包含所有枚举常量的数组,顺序是按声

明的顺序存储的

EnumSet<E extend

Enum

<E>>

EnumSet 的名称说明了其作用,它是在 J2SE 5.0 后加入的新类别,可以协助

您建立枚举值的集合,它提供了一系列的静态方法,可以让您指定不同的集合

 

建立方式 .

public static <E extends 

Enum

<E>> 

EnumSet

<E> 

complementOf(

EnumSet

<E> s)

 

创建一个其元素类型与指定枚举 set 

 

相同的枚举 set,最初包含指定 

set 中所
 包含的此类型的所有元素(取余)
public static <E extends 

Enum

<E>> 

EnumSet

<E> of(E e)创建

 

一个最初包含指定元素的枚举 set   

用 1   

到 个元素重载此方法,从

 

而初始化一个枚举 set

 

。第 次重载使用变量参数功能。此重载可能创

 

建一个最初包含任意个元素的枚举 set,但是这样很可能比不使用变量

 

参数的重载运行得慢。
参数: e -   

此 set 

 

最初包含的元素 返回: 最初包含指定元素的枚举 

set 

EnumMap<K extends 

Enum

<K>,V>

EnumMap 是个专为枚举类型设计的类别,方便您使用枚举类型及 Map 对象 

与单纯的使用 HashMap 比较起來的差別是,在上面的程序中,EnumMap

 

根据枚举的順序來维护对象的排列顺序

 

与枚举类型键一起使用的专用

Map

 实现。

枚举映射中所

有键都必须来自单个枚举类型,

枚举类型在创建映射时显

式或隐式地指定。枚举映射在内部表示为数组。此表示形

 

式非常紧凑且高效。

枚举映射根据其键的自然顺序 来维护(该顺序是声明枚举常

量的顺序)。