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); } } }
执行结果:
向左转 向右转 射击
从遍访的结果可以看出,对象的顺序是根据列举顺序来排列的。