EnumSet的名称说明了其作用,它是在J2SE5.0后加入的新类别,可以协助您建立枚举值的集合,它提供了一系列的静态方法,可以让您指定不同的集合建立方式。

EnumSet与枚举类型一起使用的专用 Set 实现。枚举 set 中所有键都必须来自单个枚举类型,该枚举类型在创建 set 时显式或隐式地指定。

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

EnumMap与枚举类型键一起使用的专用 Map 实现。枚举映射中所有键都必须来自单个枚举类型,该枚举类型在创建映射时显式或隐式地指定。枚举映射在内部表示为数组。

enum FontConstant{
    Plain, Bold, Italilc, Hello
}
public class EnumSetDemo {

    public static  void showEnumSet(EnumSet<FontConstant> enumSet){
        for(Iterator<FontConstant> iter = enumSet.iterator();iter.hasNext();){
            System.out.println(iter.next());
        }
    }
    public static void main(String[] args){
        EnumSet<FontConstant> enumSet = EnumSet.of(FontConstant.Plain,FontConstant.Bold);
        showEnumSet(enumSet); //Plain        Bold
        System.out.println("---------------------");
        showEnumSet(EnumSet.complementOf(enumSet)); //Italilc        Hello
    }
}
enum Action{
    TURN_LEFT, TURN_RIGHT, SHOOT
}
public class EnumMapDemo {
    public static void main(String[] args){
        Map<Action, String> map = new EnumMap<Action, String>(Action.class);
        map.put(Action.TURN_LEFT, "向右转");
        map.put(Action.TURN_RIGHT, "向左转");
        map.put(Action.SHOOT, "射击");
        for(Action action : Action.values()){
            System.out.println(map.get(action));
        }
    }
}