EnumMap是个专为枚举型别设计的类,方便您使用枚举型别及Map对象,直接来举个实例:
package onlyfun.caterpillar; import java.util.*; 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)); } } }
执行结果:
与单纯的使用HashMap比较起来的差别是,在上面的程序中,EnumMap将根据枚举的顺序来维护对象的排列顺序,从下面这个程序可以看个大概:
package onlyfun.caterpillar; import java.util.*; enum Action {TURN_LEFT, TURN_RIGHT, SHOOT} public class EnumMapDemo2 { public static void main(String[] args) { Map<Action, String> map = new EnumMap<Action, String>(Action.class); map.put(Action.SHOOT, "射击"); map.put(Action.TURN_RIGHT, "向右转"); map.put(Action.TURN_LEFT, "向左转"); for(String value : map.values( )) { System.out.println(value); } } }
执行结果:
从遍访的结果可以看出,对象的顺序是根据枚举顺序来排列的。 |