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)); } }}