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));
}
}
}
转载于:https://blog.51cto.com/zlfwmm/1713854